Как получить поля из object_list в шаблоне django - PullRequest
1 голос
/ 28 июня 2011

Я использую это как представление Generci

book_info = {
    "queryset" : Book.objects.all(),
    "template_name" : "book/book_lists.html",
}

Теперь в моих шаблонах book_lists у меня есть

 {% for book in object_list %}
            <tr>
            <td>{{ book.name }}</td>

Есть ли способ, которым я могу перебрать все, как у нас в форме

{% for field in form %}
forn.label_tag and field

, чтобы я мог использовать его для всех моделей

, поэтому я хочу что-то вроде

{% for obj in object_list %}
                <tr>
                {% for fields in obj %}
                 <td> {{field.name}}:{{field}} </td>

1 Ответ

3 голосов
/ 29 июня 2011

Вам необходимо создать функцию 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]

templates / 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...