Django查询多对多字段

Django查询多对多字段,django,django-templates,django-views,Django,Django Templates,Django Views,我有这两种型号 class Tickets(models.Model): id = models.CharField(primary_key=True, max_length=12) recipients = models.ManyToManyField(CustomUser) title = models.CharField(blank=True, max_length=100) class CustomUser(AbstractBaseUser, Permissio

我有这两种型号

class Tickets(models.Model):
    id = models.CharField(primary_key=True, max_length=12)
    recipients = models.ManyToManyField(CustomUser)
    title = models.CharField(blank=True, max_length=100)

class CustomUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(primary_key=True,)
    user_name = models.CharField(blank=False, max_length=20)
在票证模型中,收件人可能包括多个用户。 我正在努力 1.阅读特定用户拥有多少票证。 2.按收件人重新组合票据以在模板中获得此类输出

我真的很努力的重组,但没有什么结果。。。
有人能给我一些指导吗?

如果您只想获得每个用户的票证,您可以使用反向关系

users = CustomUser.objects.all()
在模板中

{% for user in users %}
    {{ user.username }}
    {% for ticket in user.ticket_set.all %}
        {{ ticket.id }}
        {{ ticket.title }}
    {% endfor %}
{% endfor %}

但如果user1不在任何票证中,您的方法将显示user1,其下方为空白,对吗?@user2869934这就是为什么您有一个if语句。我正在将此筛选器添加到模板中,但不起作用。{%fort t in user1.tasksticket_set.all | finished==False%}你有什么想法吗?如果你不想让用户没有票证:就在{{foruser in users}下面,放上{If user.ticket_set},然后在最后一个{%endfor%}之前关闭它
{% for user in users %}
    {{ user.username }}
    {% for ticket in user.ticket_set.all %}
        {{ ticket.id }}
        {{ ticket.title }}
    {% endfor %}
{% endfor %}