Robb Rodirguez Jr.
Robb Rodirguez Jr.

Reputation: 57

Many to Many relationships in template

Good day guys, im new to django im having in many to many relationship display in template

How can display this into a normal list..

from . QuerySet User: webadmin, User: kim, User: sem, User: quinito, User: user1

to. webadmin kim sem quinito user1

Here's my code

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)

template

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

Upvotes: 0

Views: 114

Answers (2)

Pruthvi Barot
Pruthvi Barot

Reputation: 2018

You also make a function in your models.py and call that function in template.

Models.py

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

template

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

Or you can directly do this in template like

<p>

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

 </p>

Upvotes: 2

Dipen Dadhaniya
Dipen Dadhaniya

Reputation: 4630

Try:

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

Upvotes: 1

Related Questions