使用Django管理员上传图片?

16
有没有一种简单的方法在Django的管理界面中包含文件上传功能?我看到了这个问题,但我不太懂Javascript。
是否可以在models.py或admin.py文件中添加代码,以便在Django内置的CMS系统中轻松完成此操作?
背景:
我正在尝试创建一个名人数据库,包括他们的传记、出生日期和我想要包括的个人资料图片。这是我正在进行的小项目之一,旨在提高我的Django / Python技能。
谢谢。
1个回答

30

如果我理解正确的话,你可能只需要使用默认的Django管理工具中的小部件就可以实现ImageField

这可以满足以下需求:

  1. 使用Django Admin上传图片
  2. 包括一个与名人相配的个人资料图片(单张)。

此外,你提供的链接比较旧了。现在Django Admin随附启用了任意长度的JavaScript inline(至少有一年时间了),因此如果需要多张图片,只需设置第二个模型,该模型具有对你的配置文件模型的外键。设置Admin Inline,你就可以得到开箱即用的功能!

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]

1
我认为Nai希望上传的图片有自动缩略图预览,因此可以进行一些微调:https://dev59.com/8XM_5IYBdhLWcg3waieJ - arie
我想这是可能的。他链接的帖子和他的语言都是关于上传的,所以我没有想到。 - Yuji 'Tomita' Tomita

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接