模板中的多对多关系

时间:2020-02-28 00:34:34

标签: django django-models django-views django-templates

早安,我是django的新手,在模板中显示了多对多关系

如何将其显示在常规列表中。

来自。 QuerySet用户:webadmin,用户:kim,用户:sem,用户:quinito,用户:user1

到。 webadmin kim sem quinito user1

这是我的代码

model.py


class ListOfUser(models.Model):
    users = models.ManyToManyField(User, verbose_name='List of User')

views.py

def listofusers(request):
    userlist = ListOfUser.objects.get(id=1)

    form = ListofUserForms()

    context = {
        'form': form,
        'userlist': userlist
    }
    return render(request, 'listofusers.html', context)

模板

<p>{{userlist.users.all}}<p>

2 个答案:

答案 0 :(得分:2)

您还可以在models.py中创建一个函数,然后在模板中调用该函数。

Models.py

def display_users(self):
    return ', '.join([user.username for user in self.users.all()])

模板

<p>
    {{ userlist.display_users }}
</p>

或者您可以直接在模板中执行此操作

<p>

    {% for user in userlist %}
        <p>{{ user.users.all|join:", " }}</p>
    {% endfor % }

 </p>

答案 1 :(得分:1)

尝试:

<p>
  {% for user in userlist.users.all %}
    {{ user }}&nbsp;
  {% endfor %}
</p>