在Django多对多关系的相关表中查询最后一个值

时间:2019-02-19 10:50:44

标签: django django-queryset

作为一个新手程序员,我有以下两种模型,这两种模型在多对多设置中相互连接。

想象一下,成千上万的任务要执行数百个任务,其中一些是“执行”类型,某些是“拖放”时间,并且在不同的时间。

我的目标是查询以下任一情况:

  • 查找所有没有分配任务的任务,或者
  • 查找所有最新分配为“ Drop”类型的任务
class Tasks(models.Model):
    task_message = models.TextField(null=True, blank=True)
    task_assignment = models.ManyToManyField('Assignments',blank=True,related_name="assignments")

class Assignments(models.Model):
    assignee = models.ForeignKey(User, on_delete=models.SET_NULL, blank=False,null=True,related_name="assigned_user")
    Type = (
        (TAKE, 'Assigned To'),
        (DROP, 'Dropped From'),
        (FORWARD, 'Forwarded To'),
    )
    assignment_type = models.CharField(choices=Type, default=TAKE,max_length=20)
    assignment_update_date = models.DateTimeField(default=timezone.now)

1 个答案:

答案 0 :(得分:-1)

答案在文档中:Q()函数是您尝试创建SQL OR语句时解决问题的方法。 https://docs.djangoproject.com/en/2.1/topics/db/queries/#complex-lookups-with-q