1

私はこの本当に奇妙な問題を抱えていて、それを理解することができませんでした. モデル オブジェクトからデータを読み込み、それをフォームの初期値として設定します。オブジェクトが指定した初期値に実際に設定されるのは、フィールドの半分だけです。

フォームはこちら

sku = forms.CharField(max_length=200, required=True)
weight = forms.DecimalField(min_value=.1, max_digits=4, decimal_places=1, required=True, help_text="Enter Weight In Pounds")
mail_class = forms.ChoiceField(choices=MAIL_CLASS, required=True)
package_type = forms.ChoiceField(choices=PACKAGE_TYPE, required=True)
shipping_rule = forms.IntegerField(min_value=1, required=False)
new_weight = forms.DecimalField(min_value=.1, max_digits=4, decimal_places=1, required=False, help_text="Enter Weight for new shipping method In Pounds")
new_mail_class = forms.ChoiceField(choices=MAIL_CLASS, required=False, initial='None')
new_package_type = forms.ChoiceField(choices=PACKAGE_TYPE, required=False, initial='None')
max_shipping_rule = forms.IntegerField(min_value=2, required=False)
max_weight = forms.DecimalField(min_value=.1, max_digits=4, decimal_places=1, required=False, help_text="Enter Weight for new shipping method In Pounds")
max_mail_class = forms.ChoiceField(choices=MAIL_CLASS, required=False, initial='None')
max_package_type = forms.ChoiceField(choices=PACKAGE_TYPE, required=False, initial='None')

そして、これが私がビューに設定したものです

data = {
        'sku': shipping_info.sku,
        'weight': shipping_info.weight,
        'mail_class': shipping_info.mailclass,
        'package_type': shipping_info.packagetype,
        'shipping_rule': shipping_info.shippingrule,
        'new_weight': shipping_info.newweight,
        'new_mail_class': shipping_info.newmailclass,
        'new_package_type': shipping_info.newpackagetype,
        'max_shipping_rule': shipping_info.maxshippingrule,
        'max_weight': shipping_info.newmaxweight,
        'max_mail_class': shipping_info.maxmailclass,
        'max_package_type': shipping_info.maxpackagetype
    }

    form = ShippingType(initial=data)

問題は、テンプレートで mail_class 選択フィールドが正しい値に設定されることだけです。ただし、 package_type はすべて最初のオプションで設定されています。

初期値として入力される値を確認しましたが、すべての選択肢と一致しています...

何か案は?

4

1 に答える 1

1

問題の内容とデータベース自体にあることがわかりました。

すべてのパッケージ タイプの最後にいくつかの空の文字があります。

ではその謎に迫ります。

于 2013-10-10T02:50:40.797 に答える