How to iterate over model instance field names and values in template with Python Django?

Sometimes, we want to iterate over model instance field names and values in template with Python Django.

In this article, we’ll look at how to iterate over model instance field names and values in template with Python Django.

How to iterate over model instance field names and values in template with Python Django?

To iterate over model instance field names and values in template with Python Django, we can use a for loop.

For instance, we write

from django.forms.models import model_to_dict


def show(request, object_id):
    object = FooForm(data=model_to_dict(Foo.objects.get(pk=object_id)))
    return render_to_response("foo/foo_detail.html", {"object": object})

in the show view that passes the object object to the foo_detail.html template.

Then in the template, we write

{% for field in object %}
    <li><b>{{ field.label }}:</b> {{ field.data }}</li>
{% endfor %}

to loop through the object attributes and get the attribute name from label and the attribute value from data.

Conclusion

To iterate over model instance field names and values in template with Python Django, we can use a for loop.