我想通过提供列表来过滤一个类
first_name = ['John', 'Lian']
employees = Employee.objects.filter(firstname in first_name)
在实际情况中,first_name是即时生成的。
现在我收到了'global name 'firstname' is not defined'
错误。
我确信Employee类中有一个名为firstname的字段。
我该如何解决这个问题? 谢谢你的帮助!
模型类
class Employee(models.Model):
status= fields.BooleanField(default=True)
title = fields.CharField(max_length=128)
first_name = models.ManyToManyField('First_name', blank=True, null=True)
注意:这不是真正的模型,但可以代表这个问题。
答案 0 :(得分:5)
使用下一行:
employees = Employee.objects.filter(firstname__in = first_name)
如果first_name字段是ManyToManyField(并且First_name模型包含字段“name”),您应该尝试这样的事情:
first_names = ['John', 'Lian']
employees = Employee.objects.filter(first_name__title__in = first_names)
另一种方式:
first_names = ['John', 'Lian']
instances = [First_name.objects.get(title = title) for title in first_names]
employees = Employee.objects.filter(first_name__in = instances)