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