"instance"パラメータでオブジェクトを初期化しようとしていますが、フォームには入りません。それは必須ですので、is_validは失敗します。誰か助言してもらえますか?私はそれが簡単な間違いだとはほとんど思っていますが、見つけられません。ModelForm "instance"パラメータと外部キーフィールド
FORM:views.py
if businessid:
b = Business.objects.get(id=businessid)
category = b.category
assert(b.owner == request.user) or request.user.is_staff
#form = forms.BusinessEditForm(request.POST, instance=b)
else:
assert category.is_public or request.user.is_staff
b = Business(owner=request.user, category_id=category.id)
# form = forms.BusinessEditForm(request.POST, instance=b)
isNew = True
if request.method == "POST":
form = forms.BusinessEditForm(request.POST, instance=b)
if form.is_valid():
で
from django.forms import ModelForm
from tagging.forms import TagField
class BusinessEditForm(ModelForm):
tags = TagField()
class Meta:
model = Business
exclude = ('owner', 'pub_date')
ロジックこの最後の行はFalseに検証します。
助けを歓迎します。あなたがいるなら
if request.method == "POST":
form_data = request.POST.copy()
form_data['instance'] = b
form = forms.BusinessEditForm(form_data)
'BusinessEditForm'クラスを置くと助けになります(ModelFormから継承しますか?)。 :(form_data [ "カテゴリ"]) "カテゴリ" でform_dataかない場合 –
元のメッセージで更新おかげで、しかし、基本的には答えはイエスである) –