Django Admin Dashboard ImageField问题

ulydmbyx  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(115)

在我的django管理 Jmeter 板中,我为ImageField做了一个模型,问题是我将使用它作为旋转木马,但我需要上传多个图像,django限制一次只能上传一个图像,我试着四处寻找大约3个小时,我找不到任何解决方案,每次我发现一些东西,要么它不再工作,要么它不是我在找的。所以总的来说,我只是想为选择文件按钮的解决方案,当我点击它,我可以选择一个以上的文件/img
我试着寻找解决方案超过3个小时,但找不到任何可行的方法

qgzx9mmu

qgzx9mmu1#

ImageField只能存储一个图像。你能做什么:
为图像创建单独的模型:

#models.py
class MyImage(model.Model):
    image = models.ImageField('my image', default=None)
    
    #here you need to specify what model this images will be related to(which model you want to add several images with ImageField) lets say it is model "MyModel"
    my_model = models.ForeignKey(MyModel,
                          on_delete=models.CASCADE,
                          related_name='images')

    def preview(self):
        # this is needed to see model as actually image in admin
        full_url = str(self.image.url)
        return format_html('<img src="{}", width=200, height=200>', full_url)

字符串
然后你需要在admin中将其添加为inline:

#admin.py
from .models import Image, MyModel
from django.contrib import admin

class ImageInline(admin.TabularInline):
    model = Image
    extra = 1
    fields = ('image', 'preview')
    readonly_fields = ('preview', )

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):

    inlines = [ImageInline]


admin.site.register(Image)

相关问题