表格示例:
class PayOrderedItemForm(forms.ModelForm):
value_label = forms.CharField(widget = forms.HiddenInput())
product_id = forms.ModelChoiceField(
queryset = Product.objects.all(),
widget = forms.HiddenInput())
balance = forms.CharField(widget = forms.HiddenInput())
class Meta:
model = PayOrderedItem
exclude = ('payorder_id', 'balance', 'value_label',)
POST 示例:
def PayOrderView (request, order_id):
...
if request.method == "POST":
poForm = PayOrderForm(request.POST)
##poItem = PayOrderedItemFormset(request.POST, request.FILES)
formset = inlineformset_factory(
PayOrder,
PayOrderedItem,
form = PayOrderedItemForm,
can_delete=False)
poItem = formset(request.POST, request.FILES)
if poItem.is_valid() and poForm.is_valid() :
poForm.save()
print "poItem >> ", poItem
poItem.save()
else :
print "invalid poItem", poItem.errors
return HttpResponseRedirect(reverse('orderdetail', args=(order_id)))
else :
## GET process
我想从 PayOrderedItemForm 中排除字段 value_label 和余额,它在验证 poItem (poItem.is_valid) 时总是会失败
以下错误是: 1.余额:该字段为必填项。 2. value_label:该字段为必填字段。
请帮助我找到正确的解决方案,如何在验证中排除余额和 value_label。
最佳答案
您可以使用required=False
来指示某个字段不是必填字段。例如:
field = forms.CharField(required=False)
关于python - 如何在Django中的表单验证中排除某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667822/