0
私はすべてのフィールドが必要なときに必要なModelFormを持っています。私はこのフォームをHTML形式でレンダリングすると、それらのフィールドに必要なすべてのデータを提供しますが、サブミットをクリックしますが、フォームはis_validの検証に失敗し、エラーを出力すると、すべてのシングル入力は "このフィールドは必須です"というエラーを返します。DjangoのModelFormはデータの受信に失敗します
ここでの問題は、すべてのフィールドにデータを提供することですが、Djangoは何らかの理由でそれらを読み取らないようです。
ビュー
if request.POST:
addressForm = AddressForm(request.POST, prefix="AddressForm")
if addressForm.is_valid():
return HttpResponseRedirect('/thanks/')
print(addressForm.errors)
addressForm = AddressForm()
return render(request, 'index.html', {'addressForm':addressForm})
フォーム
class AddressForm(forms.ModelForm):
class Meta:
model = Address
fields = ['AddressLine', 'StreetNumber', 'Country', 'City', 'PostalCode']
def __init__(self, *args, **kwargs):
super(AddressForm, self).__init__(*args, **kwargs)
self.fields['AddressLine'].widget.attrs.update({'class' : 'form-control'})
self.fields['StreetNumber'].widget.attrs.update({'class': 'form-control'})
self.fields['Country'].widget.attrs.update({'class': 'form-control'})
self.fields['City'].widget.attrs.update({'class': 'form-control'})
self.fields['PostalCode'].widget.attrs.update({'class': 'form-control'})
モデル
class Address(models.Model):
AddressLine = models.CharField(max_length=100, blank=False)
StreetNumber = models.CharField(max_length=100, blank=False, default=0)
Country = models.ForeignKey(Country, blank=False)
City = models.CharField(max_length=100, blank=False)
PostalCode = models.CharField(max_length=10, blank=False)
HTML
<div class="row">
<div class="form-group col-md-2">
{{ addressForm.StreetNumber }}
</div>
<div class="form-group col-md-10">
{{ addressForm.AddressLine }}
</div>
</div>
<div class="row">
<div class="form-group col-md-4">
{{ addressForm.Country }}
</div>
<div class="form-group col-md-4">
{{ addressForm.City }}
</div>
<div class="form-group col-md-4">
{{ addressForm.PostalCode }}
</div>
</div>
私が言ったように、エラーは次のとおりです。
<ul class="errorlist">
<li>AddressLine
<ul class="errorlist">
<li>This field is required.</li>
</ul>
</li>
<li>City
<ul class="errorlist">
<li>This field is required.</li>
</ul>
</li>
<li>Country
<ul class="errorlist">
<li>This field is required.</li>
</ul>
</li>
<li>PostalCode
<ul class="errorlist">
<li>This field is required.</li>
</ul>
</li>
<li>StreetNumber
<ul class="errorlist">
<li>This field is required.</li>
</ul>
</li>
</ul>
Danさんが問題でした! – John