Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Доступ к полям переменных в шаблоне. Как? [RSS Feed]

#1 Фев. 10, 2012 16:12:25

pal201
От:
Зарегистрирован: 2010-01-05
Сообщения: 83
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступ к полям переменных в шаблоне. Как?

В части отображения не могу понять как вывести отдельные поля модели:

class Lamp(models.Model):
power=models.ForeignKey(Lamp_Power, verbose_name=u'Мощность лампы')
type=models.ForeignKey(Lamp_Type, verbose_name=u'Тип лампы')
base=models.ForeignKey(Lamp_Base, verbose_name=u'Цоколь')
image=models.ForeignKey(Lamp_Image, blank=True, null=True, verbose_name=u'Изображение')
def __unicode__(self):
return u'%s %s:- %s'%(self.power, self.type, self.base)

class Mix(models.Model):
room=models.ForeignKey(Room, verbose_name=u'Комната')
lamp=models.ForeignKey(Lamp, verbose_name=u'Тип лампы')
count=models.IntegerField(u'Количество ламп')
def __unicode__(self):
return u'%s %s %s' % (self.room, self.lamp, self.count)
и вот так пытаюсь вывести в шаблоне:
     <h1 id="introduction">Введение</h1>
<p>
{%for room in rooms%}
</br><b>id {{room.id}}</b> Название помещения: <b>{{room.name_room}}</b> на <b>{{room.level}}</b> этаже. Описание: <b>{{room.description}}</b>
{% for lamp in room.mix_set.all %}
</br>{{lamp.id}} {{lamp.lamp_id}}
{% endfor %}
</br>
{%endfor%}
</p>
передаю в шаблон таким образом:
def centr(request):
rooms = Room.objects.all()
lamps = Lamp.objects.filter()
return render_to_response('centr.html',{'rooms':rooms,'lamps':lamps})
Если для room я могу получить конкретные поля модели, то для lamp не получается. Что я делаю не правильно, подскажите пожалуйста.
Спасибо

Отредактирован pal2 (сегодня 16:19:49)



Офлайн

#2 Фев. 10, 2012 17:31:15

thecore
От:
Зарегистрирован: 2011-11-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступ к полям переменных в шаблоне. Как?

{% for lamp in room.mix_set.all %} Откуда тут лампы-то?
Наверное тогда
{% for mix in room.mix_set.all %}
{{ mix.lamp }}
{% endfor %}

def centr(request):
rooms = Room.objects.all()
lamps = Lamp.objects.filter() <- это зачем?
return render_to_response('centr.html',{'rooms':rooms})



Отредактировано (Фев. 10, 2012 17:33:25)

Офлайн

#3 Фев. 11, 2012 12:05:49

pal201
От:
Зарегистрирован: 2010-01-05
Сообщения: 83
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступ к полям переменных в шаблоне. Как?

thecore
{% for lamp in room.mix_set.all %} Откуда тут лампы-то?
Наверное тогда
{% for mix in room.mix_set.all %}
{{ mix.lamp }}
{% endfor %}

def centr(request):
rooms = Room.objects.all()
lamps = Lamp.objects.filter() <- это зачем?
return render_to_response('centr.html',{'rooms':rooms})
Спасибо за помощь!
lamps = Lamp.objects.filter() <- осталось от экспериментов.
Если нужно проводить вычисления с цифрами, то это нужно делать во view, а не в шаблоне, а в шаблон передавать только цифры?
Если мы пишем в шаблоне
{% for mix in room.mix_set.all %}
{{ mix.lamp }}
{% endfor %}
тогда может это тоже делать во view, а передавать только результат в шаблон?



Офлайн

#4 Фев. 11, 2012 16:04:50

thecore
От:
Зарегистрирован: 2011-11-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступ к полям переменных в шаблоне. Как?

Ну это ваше дело.
Наверное от задачи зависит. Чтото можно и template тегами в шаблоне посчитать.
Я сейчас на Class-based View перешел. Там вообще удобно- можно к контексту добавлять отдельно какие угодно данные.



Офлайн

  • Начало
  • » Django
  • » Доступ к полям переменных в шаблоне. Как?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version