如何在相关模型中按查询集排序查询集

时间:2016-05-19 17:14:56

标签: python django orm

在视图中,我需要订购项目,以便将具有分配给当前用户的票证的项目排在第一位。我对如何做到这一点感到有些困惑。是否可以使用Django的ORM?任何帮助赞赏!谢谢!

Models.py

class Project(TimeStampedModel):
    title = models.CharField(max_length=200)
    created_by = models.ForeignKey(settings.AUTH_USER_MODEL, null=True)

class Ticket(TimeStampedModel):
    title = models.CharField(max_length=200)
    description = models.TextField(blank=True)
    project = models.ForeignKey(Project, related_name="tickets")
    created_by = models.ForeignKey(
    settings.AUTH_USER_MODEL, null=True, related_name="created_tickets")
    assignees = RelatedSetField(
    settings.AUTH_USER_MODEL, related_name="tickets")

1 个答案:

答案 0 :(得分:0)

您可以检查是否有任何分配给当前用户,首先显示这些并将其从查询集中弹出。然后显示查询集的其余部分。

伪代码:

tickets = Tickets.objects.all()
users_tickets = list()
for ticket in tickets:
    if current_user in ticket.assignees:
        users_tickets.append(ticket)
        tickets.pop(ticket)
tickets = users_tickets + tickets