Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 16, 2010 01:10:27

dev.evgen
От:
Зарегистрирован: 2010-07-18
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

необходима рекомендация по queryset

модели:

class task(models.Model):
name = models.CharField(max_length = 100)

class day(models.Model):
task = models.ForeignKey(task)
index = models.DateField()

class event(models.Model):
day = models.ForeignKey(day)
priority = models.IntegerField()
descriprion = models.CharField(max_length = 200)
необходимо: в шаблоне отрисовать список задач, приоритетов в рамках всех дней по задаче и только при условии изменения приоритета.
выводимые поля: task.name, event.priority
особенности: спецификации должны быть с ifchanged по priority
реализация:
в шаблон выкидываю queryset task.objects.all()
в шаблоне:
{% for t in task %}
{{ t.name }}
{% for d in t.day_set.all %}
{% for e in d.event_set.all|dictsort:"priority" %}
{% ifchanged e.priority %}
{{ e.priority }}
{% endifchanged %}
{% endfor %}
{% endfor %}
{% endfor %}
проблема: тег ifchanged не оправдал ожиданий.

как бы вы решили эту задачу? заранее благодарен!



Офлайн

#2 Авг. 16, 2010 01:11:47

dev.evgen
От:
Зарегистрирован: 2010-07-18
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

необходима рекомендация по queryset

fix: {% for e in d.event_set.all|dictsort:“priority” %} без сортировки



Офлайн

#3 Авг. 16, 2010 02:44:36

dev.evgen
От:
Зарегистрирован: 2010-07-18
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

необходима рекомендация по queryset

написал для модели task метод. выглядит ужасно :)

def get_priority(self):
priority_list = []
tmp_priority = None
for day in self.day_set.all():
for event in day.event_set.all():
priority = content.priority
if tmp_priority != priority:
tmp_priority = priority
priority_list.append(priority)
else: pass
return priority_list



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version