【问题标题】:django-localflavor fields not showing up in Django admin models?Django 管理模型中未显示 django-localflavor 字段?
【发布时间】:2016-11-19 00:25:28
【问题描述】:

我正在尝试在我的 Django 应用程序中实现 django-localflavors。

我在 models.py 的开头导入 USStateSelect 和 USZipCodeField,然后将它们作为一个字段与其他字段一起包含在我的模型中,如下所示:

from localflavor.us.forms import USStateSelect, USZipCodeField
...
Class MyModel(models.Model):
... 
     state = USStateSelect()
     zip_5 = USZipCodeField()

但是,当我转到 Django 管理并尝试创建一个新的模型对象时,我看到了我编写的所有其他字段(CharFields 等),除了任何 localflavor 字段。它们根本没有作为我的模型对象表单中的输入字段显示。我已经对我的数据库进行了迁移,所以这不是问题。

我是否误解了如何使用 django-localflavor?我在另一篇文章的答案中读到 localflavor 实际上并没有创建输入字段,只存储数据......但我也读到它确实允许您输入数据。在这一点上,我很困惑。任何帮助,将不胜感激!

【问题讨论】:

    标签: django django-models django-localflavor


    【解决方案1】:

    我认为您正在寻找的是model fields。表单字段用于构建您自己的表单(通常在管理员之外,例如联系表单)。 Localflavor 有几个字段可以满足您的需求。请注意,这些本质上是 CharFields,有一些额外的验证以确保遵循所需的格式。

    【讨论】:

      【解决方案2】:

      您需要指定选择选项。

      如下修改你的代码:

      from localflavor.us.forms import USStateSelect, USZipCodeField
      ...
      Class MyModel(models.Model):
      ... 
           state = USStateSelect(choices=STATE_CHOICES) # add choices
           zip_5 = USZipCodeField() # no change on this line
      

      【讨论】: