Django 1.8.3:在模板中显示多对多的附加字段

时间:2015-08-01 07:29:51

标签: python django django-models django-views

我遇到以下问题:项目可以有多个角色,如何在模板中显示角色字段? project.role显示为空白,即使在模板中使用_set.all后问题仍然存在,我仍然无法从数据库中获取要显示的内容。

Model.py

class Project(models.Model):
    """
    Information for each Project
    """

    project_name = models.CharField(max_length=255, blank=True, null=True, unique=True)

    project_description = models.TextField(null=True, blank=True)

    project_url = models.URLField(max_length=200, null=True, blank=True)

    #For Admin Purposes and filtering, to keep track of new and old  in the database by administrative users
    date_added = models.DateTimeField(auto_now_add=True, null=True, blank=True, verbose_name=_('Date added'))
    last_modified = models.DateTimeField(auto_now=True, null=True, blank=True, verbose_name=_('Last modified'))



class Role(models.Model):
    """
    Information for Role
    """

    role = models.CharField(max_length=255, blank=True, null=True)

    project_role = models.ManyToManyField(Project)

View.py

class ProjectView(ListView):

    template_name = '_projects.html'

    model = Project

    def get_context_data(self, **kwargs):
        context = super(ProjectView, self).get_context_data(**kwargs)
        context['projects'] = Project.objects.all()


        return context

模板

 {% for project_info in projects %}

        {{project_info.project_name}}
        </br>
        {{project_info.project_description}}
        </br>
        {{project_info.project_url}}
        </br>

        {% for rolling in project_info.project_role_set.all %}
            {{rolling}}
        {% endfor %}


   {% endfor %} 

1 个答案:

答案 0 :(得分:2)

试试这个:

{% for rolling in project_info.role_set.all %}
        {{rolling}}
    {% endfor %}