[Answer]-Display name of many to many relation in template

1👍

Try to specify verbose_name argument for ManytoManyfield

family = models.ManyToManyField('family',verbose_name=u'trampampam', related_name="family", null=True, blank=True)
👤singer

0👍

You write {{f.value|escape|urlize|linebreaks}}, which displays the value of the field. However, the value of a M2M relation is a set of object instances and you need to iterate again over the set (if that is the result you want):

{% load m2m_filter %}

{% for f in modelname.get_all_fields %}
  <td>{{f.label|capfirst}}</td>
  <td>
    {% if f.value|is_m2m %}        
      {% for object in f.value.objects.all %}
        {{ object|escape|urlize|linebreaks }}
      {% endfor %}
    {% else %}
      {{f.value|escape|urlize|linebreaks}}
    {% endif %}
  </td>
{% endfor %}

and you also have to create the filter

m2m_filter.py

from django import template
from django.db import models

register = template.Library()

def is_m2m(value):
    return type(value) == models.ManyToManyField *

register.filter('is_m2m', is_m2m)

* I guess, it’s a different type; just check that

Leave a comment