Django按状态查询而不是2 char缩写

时间:2018-05-13 00:29:45

标签: django django-models django-localflavor

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

我能想到的只是去Class Manager(myclassManager(models.Manager)并创建一个get_state_name方法,它接受一个2位数的代码并返回州名。如果是这种情况,我必须手工制作一份带有列表的字典。

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

思考?

1 个答案:

答案 0 :(得分:1)

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

from localflavor.us.forms import USStateSelect

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