Django查询多对多字段

时间:2017-07-23 16:20:19

标签: 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, PermissionsMixin):
    email = models.EmailField(primary_key=True,)
    user_name = models.CharField(blank=False, max_length=20)

在Tickets模型中,收件人可能包含多个用户。
我正试图 1.读取特定用户拥有的票数。
2.按收件人重新组合故障单以在模板中获得此类输出。

user_name1
   Ticket.id
   Ticket.title
user_name2
   Ticket.id
   Ticket.title
user_name3
   Ticket.id
   Ticket.title

我正在努力“重新组合”,但没有多少结果...
有人可以给我一些指导吗?

1 个答案:

答案 0 :(得分:1)

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

users = CustomUser.objects.all()

并在模板中

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