使用Django Admin上传图片?

16 投票
1 回答
30502 浏览
提问于 2025-04-16 14:37

有没有简单的方法可以在Django的管理界面中添加文件上传功能?我看到过这个问题,但我对Javascript不太了解。

有没有什么简单的方法可以在models.py或admin.py文件中添加代码,让我可以轻松地在Django内置的CMS系统中实现这个功能?

背景:

我正在尝试创建一个名人数据库,里面包括他们的个人简介、出生日期,还想加上一个头像。这是我正在进行的一个小项目,目的是提升我的Django/Python技能。

谢谢。

1 个回答

30

如果我说错了,请多包涵,但听起来你只需要Django自带的管理员小工具就能满足ImageField的需求。

这样可以实现:

  1. 通过Django管理员上传图片
  2. 为名人添加一张个人头像

另外,你提到的链接看起来有点旧。现在的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]

撰写回答