2

サンプルフォーム:

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

フィールド value_label と balance を PayOrderedItemForm から除外したいのですが、poItem (poItem.is_valid) の検証で常に失敗します。

次のエラーがあります: 1. 残高: このフィールドは必須です。2. value_label: このフィールドは必須です。

検証で残高とvalue_labelを除外する正しい解決策を教えてください。

4

1 に答える 1

3

required=Falseフィールドが必須でないことを示すために使用できます。例えば:

field = forms.CharField(required=False)
于 2013-10-29T20:06:22.767 に答える