【问题标题】:Django Query by State Name instead of 2 char abbreviationDjango 按状态名称查询而不是 2 字符缩写
【发布时间】:2018-10-23 00:25:28
【问题描述】:

我有一个具有 MULTISELECTFIELD 的模型,用户可以在其中选择与它们相关的状态。它在后端使用 django-localflavor 等等,他们选择 'TEXAS' 和 'TX' 的形式存储在数据库中。我正在使用这个 Q 查询来查找与某个状态相关联的用户。 Q(states__icontains=query) 但这只会为“TX”返回成功,而不是“TEXAS”。这是有道理的,因为这就是它在数据库中的存储方式,但是我怎样才能通过德克萨斯州进行搜索并获得相同的回报呢?

我能想到的就是去 Class Manager (myclassManager(models.Manager) 并创建一个 get_state_name 方法,该方法接受一个 2 位代码并返回状态名称。如果是这样的话,我必须手工制作一个带有列表的字典。

我觉得这可能是一种更清洁的方式。

想法?

【问题讨论】:

  • 你能展示你的模型吗?
  • 您可以将表单的搜索字段设为MultiSelect 小部件,其选项与模型中的元组相同

标签: django django-models django-localflavor


【解决方案1】:

我只是看了一下 localflavor,与我在评论中建议的内容类似。

from localflavor.us.forms import USStateSelect

class StateSearchForm(forms.Form):
    search = forms.ChoiceField(widget=USStateSelect)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 2013-08-21
    • 2021-01-24
    • 2015-03-04
    • 1970-01-01
    • 2019-11-15
    • 2021-08-29
    相关资源
    最近更新 更多