gpt4 book ai didi

django - Django 中的条件嵌套过滤器

转载 作者:行者123 更新时间:2023-12-02 05:26:28 24 4
gpt4 key购买 nike

我有一个 django 模型,可以说:

class Person(models.Model):
first_name = models.CharField(max_length=25)
last_name = models.CharField(max_length=25)

并且,存在一个搜索表单,我可以在其中按名字、姓氏或两者搜索行。我注意到我可以在 django 查询集中链接过滤器,例如:

def search(request):
list = Person.objects.filter(first_name= val1).filter(last_name=val2)

但是如果值 val1、val2 之一为空怎么办?我应该做这样的事情:

def searh(request):
if val1 != null and val2 == null:
list = Person.objects.filter(first_name= val1)
if val2 == null and val2 != null:
list = Person.objects.filter(last_name= val2)
if val2 != null and val2 != null:
list = Person.objects.filter(first_name= val1).filter(last_name=val2)

有没有直接的方法可以做到这一点?

提前致谢

最佳答案

def search(request, val1, val2):
persons = Person.objects.all()
if val1:
persons = persons.filter(first_name=val1)
if val2:
persons = persons.filter(last_name=val2)
return persons

这有效(并不是低效),因为 Querysets are lazy .

关于django - Django 中的条件嵌套过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com