【问题标题】:How include a filefield in a django admin model form that is not in the model如何在 django 管理模型表单中包含不在模型中的文件字段
【发布时间】:2012-05-08 07:32:01
【问题描述】:

我想在管理模型表单中包含一个文件字段,该字段将用于上传一个文件,然后读取该文件,其内容将用于更新同一模型中的其他字段。处理完文件本身就不需要了,所以我不希望模型中的文件字段只是在表单中。

我自己重写保存和处理表单没有问题,但我不知道如何在我的表单中包含一个不在模型中的文件字段。

【问题讨论】:

    标签: python django django-models django-forms django-admin


    【解决方案1】:

    您应该创建一个ModelForm for this model,并在其中添加该字段。它可能看起来像这样:

    from django import forms
    
    from models import MyModel
    
    class MyModelForm(forms.ModelForm):
        extra_file = forms.FileField()
    
        class Meta:
            model = MyModel
    

    然后,您可以make the ModelAdmin to use this form。如果您将 MyModelForm 保存在 yourapp/forms.py 中,您的 ModelAdmin 将如下所示:

    from django.contrib import admin
    
    from models import MyModel
    from forms import MyModelForm
    
    class MyModelAdmin(admin.ModelAdmin):
        form = MyModelForm
    admin.site.register(MyModel, MyModelAdmin)
    

    【讨论】:

      猜你喜欢
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 2011-07-12
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多