Django Query by State Name вместо двухсимвольной аббревиатуры

У меня есть модель, которая имеет MULTISELECTFIELD, где пользователь может выбрать, какие состояния относятся к ним. Он использует django-localflavor в бэкэнде и поэтому в форме, которую они выбирают "TEXAS", а "TX" сохраняется в базе данных. Я использую этот Q-запрос, чтобы найти пользователей, которые связаны с состоянием. Q(states__icontains=query) Но это только возвращает успех для "TX", а не "TEXAS". Это имеет смысл, поскольку именно так оно и хранится в базе данных, но как я могу выполнить поиск по Техасу и получить такой же доход?

Все, что я могу думать, это пойти к менеджеру класса (myclassManager(models.Manager) и создать get_state_name метод, который принимает двухзначный код и возвращает название штата. Если это так, я должен сделать словарь со списком вручную.

Я чувствую, что это может быть чище.

Мысли?

1 ответ

Решение

Я только что посмотрел на localflavor и похоже на то, что я предложил в своем комментарии.

from localflavor.us.forms import USStateSelect

class StateSearchForm(forms.Form):
    search = forms.ChoiceField(widget=USStateSelect)
Другие вопросы по тегам