use*_*652 1 django django-models
我想通过提供一个列表来过滤一个类
first_name = ['John', 'Lian']
employees = Employee.objects.filter(firstname in first_name)
Run Code Online (Sandbox Code Playgroud)
在实际情况中,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)
Run Code Online (Sandbox Code Playgroud)
注意:这不是真实的模型,但可以代表这个问题.
使用下一行:
employees = Employee.objects.filter(firstname__in = first_name)
Run Code Online (Sandbox Code Playgroud)
如果first_name字段是ManyToManyField(并且First_name模型包含字段"name"),您应该尝试这样的事情:
first_names = ['John', 'Lian']
employees = Employee.objects.filter(first_name__title__in = first_names)
Run Code Online (Sandbox Code Playgroud)
其他方式:
first_names = ['John', 'Lian']
instances = [First_name.objects.get(title = title) for title in first_names]
employees = Employee.objects.filter(first_name__in = instances)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
398 次 |
| 最近记录: |