2012-04-27 71 views
2

我想在管理模型表單中包含文件域,該文件域將用於上傳文件,然後將文件讀取並將內容用於更新同一模型中的其他字段。處理完文件本身並不需要,所以我不希望模型中的文件字段只是在表單中。如何在未包含在模型中的django管理模型表單中包含文件域

我沒有問題覆蓋保存和處理表單我自己,但我無法弄清楚如何在我的表單中包含一個不在模型中的文件。

回答

6

您應該創建一個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)