我想在管理模型表单中包含一个文件字段,该字段将用于上传一个文件,然后读取该文件,其内容将用于更新同一模型中的其他字段。处理完文件本身就不需要了,所以我不希望模型中的文件字段只是在表单中。
我自己覆盖保存和处理表单没有问题,但我不知道如何在我的表单中包含不在模型中的文件字段。
我想在管理模型表单中包含一个文件字段,该字段将用于上传一个文件,然后读取该文件,其内容将用于更新同一模型中的其他字段。处理完文件本身就不需要了,所以我不希望模型中的文件字段只是在表单中。
我自己覆盖保存和处理表单没有问题,但我不知道如何在我的表单中包含不在模型中的文件字段。
您应该为此模型创建一个ModelForm ,并在那里添加该字段。它可能看起来像这样:
from django import forms
from models import MyModel
class MyModelForm(forms.ModelForm):
extra_file = forms.FileField()
class Meta:
model = MyModel
然后,您可以让 ModelAdmin 使用此表单。如果您将 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)