如何从django模板中的object_列表中获取字段

如何从django模板中的object_列表中获取字段,django,templates,generics,Django,Templates,Generics,我将此用作Generci视图 book_info = { "queryset" : Book.objects.all(), "template_name" : "book/book_lists.html", } 现在在我的模板书中,我列出了 {% for book in object_list %} <tr> <td>{{ book.name }}</td> 这样我就可以在所有型号上使用它

我将此用作Generci视图

book_info = {
    "queryset" : Book.objects.all(),
    "template_name" : "book/book_lists.html",
}
现在在我的模板书中,我列出了

 {% for book in object_list %}
            <tr>
            <td>{{ book.name }}</td>
这样我就可以在所有型号上使用它

所以基本上我想要

{% for obj in object_list %}
                <tr>
                {% for fields in obj %}
                 <td> {{field.name}}:{{field}} </td>
{对象列表%中的对象的%
{obj%中的字段为%s}
{{field.name}}:{{field}

您需要在模型中创建一个get_fields函数,然后在模板中使用该函数来访问字段和值。这是一个完整的例子

books/models.py:

from django.db import models

class Book(models.Model):
        name = models.CharField(max_length=30)
        author = models.CharField(max_length=30)
        isbn = models.IntegerField(max_length=20)
        published = models.BooleanField()

        def get_fields_and_values(self):
            return [(field, field.value_to_string(self)) for field in Book._meta.fields]
模板/books/book_list.html:

<table>
 {% for obj in object_list %}
    <tr>
        {% for fld, val in obj.get_fields_and_values %}
            <td>{{ fld.name }} : {{ val }}</td>
        {% endfor %}
    </tr>
 {% endfor %}
</table>

{对象_列表%中的对象为%j}
{对于fld,obj.get_字段_和_值%}
{{fld.name}}:{{val}
{%endfor%}
{%endfor%}
<table>
 {% for obj in object_list %}
    <tr>
        {% for fld, val in obj.get_fields_and_values %}
            <td>{{ fld.name }} : {{ val }}</td>
        {% endfor %}
    </tr>
 {% endfor %}
</table>