Django:向当前用户显示一组相关数据

Django: Displaying set of related data to current user

我想以给定方式显示我的数据库中的数据:

用户

一组电子邮件

此刻我有这样的事情:

models.py

class Person(models.Model):
    name = models.CharField(max_length=50)
    surname = models.CharField(max_length=50)
    objects = PersonManager()

class Email(models.Model):
    person= models.ForeignKey(Person,editable=False,on_delete=models.CASCADE)
    email= models.EmailField()
    objects = EmailManager()

    def __str__(self):
        return self.email

class PersonManager(models.Manager):
    def get_by_natural_key(self,name,surname):
        return self.get(name=name,surname=surname)

在我的 views.py 中,我覆盖了 get_context_data() 方法。

现在,在我的 html 文件中我有:

{% for user in users %} //person
{% for email in user.email_set.all %}
    {{ user.attr }} 
    {{ email }}   
{% endfor %} 
{% endfor %}  

这种方式下单不是通过用户,而是通过邮件,例如:

取代了

用户 1

邮箱1,邮箱2

用户 1

email1

用户 1

email2

您必须更改模板代码。使用以下代码:

{% for user in users %} //person
    {{ user.attr }} 
    {% for email in user.email_set.all %}        
        {{ email }}   
    {% endfor %} 
{% endfor %}