如果来自表单提交的POST数据=“John Doe”,并且我正在尝试将其与此模型中的对象匹配:
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
我该怎么做?
我试过了:
person = Person.objects.filter(last_name__in=post_data,first_name__in=post_data)
它不起作用,因为“__in”字段定位器正在查找列表。
我试过了:
person = Person.objects.filter(last_name__in=list(post_data),first_name__in=list(post_data))
它不起作用,因为我创建了一个单项列表,其项目为“John Doe”,它与person对象中的first_name或last_name不匹配。
请帮助初学者。谢谢!
答案 0 :(得分:1)
您可以使用以下内容:
from django.db.models import Q ... for w in post_data.split(): qs = qs.filter(Q(first_name__icontains=w)|Q(last_name__icontains=w))
它拆分输入字符串,并将每个单词与first_name或last_name匹配。