Django 按州名查询而不是 2 个字符的缩写
Django Query by State Name instead of 2 char abbreviation
我有一个具有 MULTISELECTFIELD 的模型,用户可以在其中 select 哪些状态与其相关。它在后端使用 django-localflavor 等他们选择 'TEXAS' 和 'TX' 的形式存储在数据库中。我正在使用此 Q 查询来查找与某个州关联的用户。 Q(states__icontains=query)
但这仅 return 是 'TX' 而不是 'TEXAS' 的成功。这是有道理的,因为这就是它在数据库中的存储方式,但是我如何通过德克萨斯州进行搜索并获得相同的 return?
我能想到的就是转到 Class 管理器 (myclassManager(models.Manager
) 并创建一个 get_state_name
方法,该方法接受一个 2 位代码和 return是州名称。如果是这样的话,我必须手工制作一个包含列表的字典。
我觉得这可能是一种更简洁的方法。
想法?
我刚刚看了一下 localflavor 并且内置了与我在评论中建议的类似的内容。
from localflavor.us.forms import USStateSelect
class StateSearchForm(forms.Form):
search = forms.ChoiceField(widget=USStateSelect)
我有一个具有 MULTISELECTFIELD 的模型,用户可以在其中 select 哪些状态与其相关。它在后端使用 django-localflavor 等他们选择 'TEXAS' 和 'TX' 的形式存储在数据库中。我正在使用此 Q 查询来查找与某个州关联的用户。 Q(states__icontains=query)
但这仅 return 是 'TX' 而不是 'TEXAS' 的成功。这是有道理的,因为这就是它在数据库中的存储方式,但是我如何通过德克萨斯州进行搜索并获得相同的 return?
我能想到的就是转到 Class 管理器 (myclassManager(models.Manager
) 并创建一个 get_state_name
方法,该方法接受一个 2 位代码和 return是州名称。如果是这样的话,我必须手工制作一个包含列表的字典。
我觉得这可能是一种更简洁的方法。
想法?
我刚刚看了一下 localflavor 并且内置了与我在评论中建议的类似的内容。
from localflavor.us.forms import USStateSelect
class StateSearchForm(forms.Form):
search = forms.ChoiceField(widget=USStateSelect)