邮政编码模型字段在Admin中显示为状态列表

问题描述:

不确定,但我认为这可能是一个错误?邮政编码模型字段在Admin中显示为状态列表

这里是我的模型:

class Property(models.Model): 
Name = models.CharField(max_length=40) 
Description = models.TextField(default="Description Not Available") 
Address = models.CharField(max_length=60, default="Not Available") 
Address2 = models.CharField(max_length=60,null=True) 
City = models.CharField(max_length=60, null=True) 
State = usa_model.USStateField(null=True) 
Code = usa_model.USPostalCodeField(null=True) 
Phone = usa_model.PhoneNumberField(null=True) 

enter image description here

我缺少的东西?

-Kerry

+1

和'State'显示邮政编码吗? – Bastardo 2011-04-25 06:18:23

+0

不显示状态。 – 2011-04-25 18:47:20

也许你正在寻找的US Zip Code Form Field?

USPostalCodeField使用状态+一些额外的列表:

COFA_STATES = (
    ('FM', 'Federated States of Micronesia'), 
    ('MH', 'Marshall Islands'), 
    ('PW', 'Palau'), 
) 

django.contrib.localflavor.us.us_states

# USStateField 
STATE_CHOICES = tuple(sorted(US_STATES + US_TERRITORIES + ARMED_FORCES_STATES, key=lambda obj: obj[1])) 

# USPostalCodeField 
USPS_CHOICES = tuple(sorted(US_STATES + US_TERRITORIES + ARMED_FORCES_STATES + COFA_STATES, key=lambda obj: obj[1])) 
+0

啊我明白了。那么我的模型应该是什么?整数max_length = 5?或CharField最大= 10?另外我如何将表单字段添加到管理员端?谢谢!由于验证接受XXXX-XXXX,所以'CharField'为 – 2011-04-25 18:50:52

+3

。对于管理员,只需指定一个带有一个字段的ModelForm:'Code = ... USZipCodeField'并使用您的ModelForm覆盖'ModelAdmin.form' - 应该像6行代码:) – 2011-04-25 20:39:18

+0

然后,如果您使用的是ModelForm,它将只需使用文本字段而不进行任何验证。那么如何在使用ModelAdmin时使其验证正确? – miki725 2012-06-27 18:34:43