如何在django管理模型表单中包含不在模型中的文件字段

Fin*_*ish 2 python django django-models django-forms django-admin

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

我自己覆盖保存和处理表单没有问题,但我无法弄清楚如何在我的表单中包含一个不在模型中的文件字段.

jpi*_*pic 6

您应该为此模型创建ModelForm,并在其中添加字段.它可能看起来像这样:

from django import forms

from models import MyModel

class MyModelForm(forms.ModelForm):
    extra_file = forms.FileField()

    class Meta:
        model = MyModel
Run Code Online (Sandbox Code Playgroud)

然后,您可以使ModelAdmin使用此表单.如果您在yourapp/forms.py中保存了MyModelForm,您的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)
Run Code Online (Sandbox Code Playgroud)