2013-10-10 55 views
1

我有这个真正奇怪的问题布莱恩,并没有能够弄明白。我有一个带有ChoiceField的表单,我从一个模型对象中加载数据并将其设置为表单的初始值。实际上只有一半的字段被设置为该对象指定的初始值。Django ChoiceField初始值未设置为所有ChoiceFields

继承人的形式

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 choicefields将被设置为在模板中的权值。尽管package_type只是在第一个选项上设置的。

我已经检查越来越把值作为inital,这一切

任何想法相匹配,以选择......?

回答

1

找出问题出在哪里,它在数据库本身。

所有包类型的末尾都有一些空字符。

现在到那个谜。