使用Django Admin上传图片?
有没有简单的方法可以在Django的管理界面中添加文件上传功能?我看到过这个问题,但我对Javascript不太了解。
有没有什么简单的方法可以在models.py或admin.py文件中添加代码,让我可以轻松地在Django内置的CMS系统中实现这个功能?
背景:
我正在尝试创建一个名人数据库,里面包括他们的个人简介、出生日期,还想加上一个头像。这是我正在进行的一个小项目,目的是提升我的Django/Python技能。
谢谢。
1 个回答
30
如果我说错了,请多包涵,但听起来你只需要Django自带的管理员小工具就能满足ImageField
的需求。
这样可以实现:
- 通过Django管理员上传图片
- 为名人添加一张个人头像
另外,你提到的链接看起来有点旧。现在的Django管理员支持用JavaScript处理任意长度的内联表单(至少有一年了吧),所以如果你想上传多张图片,只需创建一个新的模型,并在里面设置一个指向你个人资料模型的外键。然后设置一个管理员内联,这样就能直接使用这些功能了!
class Celebrity(models.Model):
name = models.CharField(max_length=100)
class Image(models.Model):
celebrity = models.ForeignKey(Celebrity, on_delete=models.CASCADE)
image = models.ImageField()
class InlineImage(admin.TabularInline):
model = Image
@admin.register(models.Celebrity)
class CelebrityAdmin(admin.ModelAdmin):
inlines = [InlineImage]