比较两个表中的值并在Django中创建一个列表

时间:2014-04-29 04:49:18

标签: django

我有两个型号。我需要从Model2中提取不存在于Model2中的employeeno数据。怎么做?

型号1

class Employee(models.Model):
    employeeno = models.CharField(max_length=50, null=False, unique=True)
    project = models.ForeignKey(Project, null=False)
    days = models.IntegerField('Number of Days', null=False)

模型2

class RemEmployee(models.Model):
    employeeno = models.ForeignKey(Employee, null=False, unique=True)
    reason= models.CharField(max_length=500, null=False)

2 个答案:

答案 0 :(得分:1)

我可以从您的数据模型中了解到,您希望获取那些在RemEmployee表中不作为外键出现的员工对象

因此,您可以通过以下查询

找到此信息
Employee.objects.filter(rememployee__isnull=True).values_list('employeeno', flat=True)

注意:尽管您在RemEmployee中将外键设为唯一,这使得它成为OneToOne键(与问题无关但只是告诉)

答案 1 :(得分:0)

Employee.objects.exclude(employeeno__in=RemEmployee.objects.values_list('employeeno', flat=True))

这将返回Employee个对象未共享employeeno的所有RemEmployee个对象。