首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过Enums搜索

如何通过Enums搜索
EN

Stack Overflow用户
提问于 2022-04-29 01:42:37
回答 1查看 34关注 0票数 0

我正在尝试编写一个搜索函数,以查找从一家餐馆预订的桌子,我有一个餐厅模型:

代码语言:javascript
运行
复制
class Restaurant(models.Model):
    """
    Table Restaurant
    =======================

    This table represents a restaurant with all necessary information.
    """
    name = models.CharField(max_length=70)
    caterer = models.ForeignKey(Caterer, on_delete=models.CASCADE, null=True)
    address = models.OneToOneField(Address, on_delete=models.CASCADE, null=True)
    kitchen_type = models.IntegerField(choices=KITCHEN_TYPE, null=True)
    opening_hours = models.OneToOneField(OpeningHours, on_delete=models.CASCADE, null=True)
    description = models.CharField(max_length=2000, null=True)
    phone = models.CharField(max_length=15, null=True)
    parking_options = models.BooleanField(default=False)

它为kitchen_type提供了一个枚举:

代码语言:javascript
运行
复制
KITCHEN_TYPE = [
    (1, "Turkish"),
    (2, "Italian"),
    (3, "German"),
    (4, "English"),
    (5, "Indian"),
]

这是view.py中的搜索函数:

代码语言:javascript
运行
复制
def search_result(request):
    if request.method == "POST":
        searched = request.POST['searched']
        result = Restaurant.objects.filter(
            Q(name__icontains=searched) | Q(address__city__icontains=searched))
        return render(request, 'search_result.html', {'searched': searched, 'result': result})
    else:
        return render(request, 'search_result.html', {})

那么,我如何在视图中搜索kitchen_type呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-29 07:13:39

与其使用元组列表,我建议扩展Django提供的IntegerChoicesTextChoices类。下面是一个如何使用IntegerChoices的示例

代码语言:javascript
运行
复制
>>> class KitchenType(models.IntegerChoices):
...     TURKISH = 1
...     ITALIAN = 2
...     GERMAN = 3
... 
>>> if 1 in KitchenType:
...     print(True)
... 
True

https://docs.djangoproject.com/en/4.0/ref/models/fields/#enumeration-types

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72051927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档