Django рендеринг многие ко многим в шаблоне

У меня есть эти модели:

class roles(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=255, blank=False)
company = models.ForeignKey(Company, blank=True, null=True, on_delete=models.SET_NULL)

def __str__(self):
    return self.name

class freelancers(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
company = models.ForeignKey(Company, blank=True, null=True, on_delete=models.SET_NULL)
user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)
role = models.ManyToManyField(roles)

Я пытаюсь получить имя, которое связано с пользователем в таблице roles.

В моем view.py он выглядит следующим образом:

def company_details(request,id):
obj = Company.objects.get(id=id)
pro = Projects.objects.filter(company=id)
free = freelancers.objects.filter(company=id)
#free = freelancers.objects.all()



return render(request, 'company/company_details.html',
{
    'obj':obj,
    'pro':pro,
    'free':free,
}
    )

А в HTML:

{% for f in free %}
{{ f.user }} // <br/>
{% endfor %} 
{{ f.role.all }}
{% endfor %} 

Я пробовал разные способы, чтобы имя отображалось. Например: {{ f.role.name }}.

Есть советы, как сделать так, чтобы это работало?

Думаю, вам придется перебирать итерации в f.role.all

Вернуться на верх