そして、私はパッケージの簡単なモデルフォームを持っています
from models import Package
from django import forms
class PackageForm(forms.ModelForm):
class Meta:
model= Package
fields= ['name', 'version', 'url', 'description', 'arch', 'dependancies', 'conflicts', 'file']
たとえば、ファイル拡張子(クラスはFileField)が.shであるかどうかを検証内で確認するように、modelformに依頼するにはどうすればよいですか?
これをモデル形式にする方法はありますか?ビューでのみ管理できますか?
ありがとう
編集:また、モデルには認証ユーザーモデルへの外部キーがあります...現在のユーザーが含まれます..modelformはそれをどのように管理できますか?
再度、感謝します
答えてくれてありがとう!私はこれを手に入れています..問題が発生しましたが
パッケージにはdjango.contrib.auth.modelsユーザーモデルへの外部キーが含まれています。フォームが処理されるときに、現在のユーザーオブジェクトをモデルインスタンスに渡すようにmodelformに指示するにはどうすればよいですか?私はこれを考えました...
views.py
def add(request):
if request.method == 'POST':
the_model= PackageForm(request.user, request.POST, request.FILES)
if the_model.is_valid():
the_model.save()
modelformのinitを上書きしました:
from models import Package
from django import forms
class PackageForm(forms.ModelForm):
def __init__(self,user,*args,**kwargs):
super (PackageForm,self ).__init__(*args,**kwargs) # populates the post
self.fields['maintainer_name'].queryset = user # adds the user object passed by add in views.py
class Meta:
model= Package
fields= ['name', 'version', 'url', 'description', 'arch', 'dependancies', 'conflicts', 'file']
manteiner_nameはForeignKey(User)オブジェクトです...それは私にキーエラーを与えます:(それは良くありません...何か解決策はありますか?
ありがとう!