形式
class AddressForm(forms.Form):
Country = forms.ModelChoiceField(queryset=Country.objects.filter(Enabled=True), empty_label="Select Country", widget=forms.Select(attrs={'class':'form-control'}))
HTML
<form method="POST" action="">
{% csrf_token %}
.
.
<div class="form-group col-md-4">
{{ addressForm.Country }}
</div>
</form>
视图
addressForm = AddressForm(request.POST, prefix="AddressForm")
country = addressForm['Country']
但是country变量包含整个HTML元素而不是选定的值。 forms.CharField
如何从表单元素中检索所选值?
答案 0 :(得分:3)
获得任何字段值的方式:通过调用is_valid()
然后调用form.cleaned_data[fieldname]
。
答案 1 :(得分:2)
我需要将AddressForm中的数据传递给模型Address对象以调用.save方法(?)
然后你可能应该只使用model form
class AddressForm(forms.Form):
class Meta:
model = Address
然后你可以打电话给form.save()
让django为你做神奇的事。
无论哪种方式,您都应该在尝试访问任何数据之前调用is_valid
。这会公开表单的cleaned_data
字典,其中包含验证后的所有表单值。