Распечатать ключ / значение объекта в шаблоне - PullRequest
1 голос
/ 26 мая 2011

Я использую универсальное представление django (v.1.2) "list_detail" для печати некоторых объектов (Model Model), хранящихся в БД.

В urls.py я добавил следующую строку

urlpatterns += patterns('django.views.generic.list_detail',
url(r'^article/(?P<slug>[\-\d\w]+)/$', 'object_detail', {'slug_field': 'title_slug', 'queryset': Article.objects.filter(is_public=True)}, name='article'),

)

В соответствующем шаблоне (article_detail.html) я хотел бы напечатать статью, повторяя всеего поля.На самом деле я написал:

{% for k,v in object.fields %}
  <p>{{k}}:{{v}}<p>
{% endfor %}

но это не работает.Есть предложения?

Ответы [ 2 ]

0 голосов
/ 20 октября 2013

Давайте решим это на примере -

У меня есть модель as-

class item(models.Model):
    item_number = models.AutoField(primary_key=True)
    item_name = models.CharField(max_length=200)
    lifetime_rating = models.DecimalField(max_digits=3,decimal_places=1, default=0)
    current_rating = models.DecimalField(max_digits=3,decimal_places=1, default=0)
    lifefeedbacknum = models.IntegerField(default=0)
    currentfeedbacknum = models.IntegerField(default=0)

    def __unicode__(self):
        return self.item_name

    def retlifetime_rating(self):
        return self.lifetime_rating

Обратите внимание на метод-retlifetime_rating, который возвращает значение продолжительности жизни для экземпляра объекта.

Теперь мы хотим отобразить оценки срока службы для всех продуктов

в views.py-

def showrating(request):
    itemslist= models.item.objects.all()
    return render(request, 'showrating.html', 'sitems' : itemslist)

файл showrating.html содержит следующий фрагмент кода-

{% for element in sitems %}
        <tr>
            <td>{{ element }}</td>
            <td>{{ element.retlifetime_rating }}</td>
        </tr>
    {% endfor %}

в основном, если вы хотите отобразить различные поля объекта, вам нужно иметь соответствующий вызов метода для возврата этого поля

вне курса, есть другие способы сделать это, но это, скорее всего, самый простойи проще всего реализовать

0 голосов
/ 26 мая 2011

'queryset': Article.objects.filter (is_public = True) отправляет список в ваш шаблон.но в шаблоне вы рассматриваете его как объект Article.

'article': Article.objects.filter (is_public = True) [0]

, тогда вы можетеДоступ ко всем пунктам ст.Однако я не понимаю, что вы пытаетесь с этим делать.это Article.fields список или дикт?? 1007 *

...