【问题标题】:Postal Code model field shows up as State list in Admin邮政编码模型字段在管理员中显示为州列表
【发布时间】:2011-04-25 06:11:40
【问题描述】:

不确定,但我认为这可能是一个错误?

这是我的模型:

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)

我错过了什么吗?

-克里

【问题讨论】:

  • State 是否显示邮政编码?
  • 不,它也显示状态。

标签: django postal-code django-contrib


【解决方案1】:

也许您正在寻找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]))

【讨论】:

  • 啊,我明白了。那么我的模型应该是什么?整数 max_length=5?还是 CharField max=10?另外,我如何将表单字段添加到管理端?谢谢!
  • CharField,因为验证接受 XXXX-XXXX。对于管理员,只需指定一个带有一个字段的 ModelForm:Code = ...USZipCodeField 并用您的 ModelForm 覆盖 ModelAdmin.form - 应该像 6 行代码:)
  • 那么如果您使用的是 ModelForm,它将只使用文本字段而无需任何验证。那么在使用 ModelAdmin 时如何使其正确验证呢?
  • @miki725:阅读我上面的评论,定义您的表单,然后将其传递给 ModelAdmin 表单属性。
  • 抱歉,没看到。谢谢
猜你喜欢
  • 2023-03-31
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 2017-05-08
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
相关资源
最近更新 更多