python - 如何过滤元组中的第二个元素?

标签 python django filter country

在我的模型中,我有一个字段:

   country = models.CharField(_('Country'), max_length=2, choices=COUNTRIES)

其中 COUNTRIES 是这样的元组的元组:

COUNTRIES = (
    ('AF', _('Afghanistan')),

...等等

现在我想按国家/地区名称过滤该模型的实例。

这个:

   i = MyModel.objects.filter(country__iexact=query)

只允许我按国家/地区代码进行过滤。

如何按国家/地区名称过滤?

最佳答案

您无法直接按国家/地区名称进行过滤(选项仅在用户界面中使用,而不在数据库中使用)。

如果您获得全名作为输入,请在 COUNTRIES 元组中查找代码。例如:

# ... initialize a lookup dictionary
country_to_id_dict = dict((t[1], t[0]) for t in COUNTRIES)

# ... use the dictionary in the query
i = MyModel.objects.filter(country__exact=country_to_id_dict[query])

关于python - 如何过滤元组中的第二个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1745919/

相关文章:

r - 选择所有值都大于 x 的组

python - 未安装 Markdown 库/urllib ImportError

python - 检查给定键是否已存在于字典中

css - Django 压缩器和部署

django - 如何在Django中的 'python manage.py runserver'之后继续在终端中输入?

android - 如何让我的 Android 应用程序出现在另一个特定应用程序的共享列表中

arrays - 将函数传递给数组过滤器函数错误 - Swift 4

python - 如何强制 Traits View 对象的状态栏属性更新/重绘自身?

python - 我如何将 numpy 数组转换为 pandas 数据框

jquery - is_valid() 返回 True 但模型形式不会被保存