ファイルをアップロードするために使用される管理モデルフォームにファイルフィールドを含めたいと思います。ファイルはその後読み取られ、コンテンツは同じモデル内の他のフィールドを更新するために使用されます。ファイル自体を処理した後は必要ないので、モデルのファイルフィールドをフォームだけにしたくありません。
保存をオーバーライドして自分でフォームを処理することに問題はありませんが、モデルにないフォームにファイルフィールドを含める方法がわかりません。
ファイルをアップロードするために使用される管理モデルフォームにファイルフィールドを含めたいと思います。ファイルはその後読み取られ、コンテンツは同じモデル内の他のフィールドを更新するために使用されます。ファイル自体を処理した後は必要ないので、モデルのファイルフィールドをフォームだけにしたくありません。
保存をオーバーライドして自分でフォームを処理することに問題はありませんが、モデルにないフォームにファイルフィールドを含める方法がわかりません。
このモデルの 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)