【问题标题】:Upload multiple files using Files Field in Django Admin使用 Django Admin 中的文件字段上传多个文件
【发布时间】:2018-09-18 22:02:14
【问题描述】:

这里我有类模型:

models.py

class Parameter(models.Model):
    files = models.FileField(
        upload_to='uploaded',
        blank=True,
        null=True,
    )

我的 admin.py

中有这个
class ParameterAdmin(admin.ModelAdmin):
    form = Parameter

我将它添加到我的 forms.py 中,这样它就可以选择多个文件

class ParameterForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(ParameterForm, self).__init__(*args, **kwargs)
        self.fields['files '] = forms.FileField(
            widget=forms.ClearableFileInput(attrs={'multiple': True}),
        )

但是,在我尝试通过 django admin 选择和选择多个文件之后.. 并非所有文件都已上传,它只上传一个最新选择的文件..

如何通过 django admin 上传多个文件..? 我不需要views.py和html来自..我只需要django管理员可以上传多个文件..简单

【问题讨论】:

    标签: python django django-admin filefield


    【解决方案1】:

    一个 FileField 只存储一个文件。如果您需要多个文件,则需要多个字段(但除非每个文件都作为不同的特定角色,否则这是一个糟糕的设计)或具有ParameterFileField 外键的不同ParameterFile 模型,并且然后使用InlineModelAdmin

    【讨论】:

    • 不!他需要按1个按钮,然后选择100个文件上传!他不想按“上传按钮”100 次!所以.. 这不是关于内联.. 它是关于多个文件上传
    【解决方案2】:

    你应该像这样覆盖 ParameterAdmin 的 save_model 函数:

    def save_model(self, request, obj, form, change):
        files = request.FILES.getlist('files')
        for f in files:
            instance = Parameter(files=f)
            instance.save()
    

    它将保存所有文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 2011-08-15
      • 1970-01-01
      相关资源
      最近更新 更多