【发布时间】:2012-05-08 07:32:01
【问题描述】:
我想在管理模型表单中包含一个文件字段,该字段将用于上传一个文件,然后读取该文件,其内容将用于更新同一模型中的其他字段。处理完文件本身就不需要了,所以我不希望模型中的文件字段只是在表单中。
我自己重写保存和处理表单没有问题,但我不知道如何在我的表单中包含一个不在模型中的文件字段。
【问题讨论】:
标签: python django django-models django-forms django-admin
我想在管理模型表单中包含一个文件字段,该字段将用于上传一个文件,然后读取该文件,其内容将用于更新同一模型中的其他字段。处理完文件本身就不需要了,所以我不希望模型中的文件字段只是在表单中。
我自己重写保存和处理表单没有问题,但我不知道如何在我的表单中包含一个不在模型中的文件字段。
【问题讨论】:
标签: python django django-models django-forms django-admin
您应该创建一个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)
【讨论】: