Дополнительные данные об объектах в шаблонах Django - PullRequest
0 голосов
/ 13 февраля 2010

У меня есть объекты django:

class Event(models.Model):
   title = models.CharField(max_length=255)
   event_start_date = models.DateField(null=True, blank='true')
   ...

class RegistrationDate(models.Model):
    event = models.ForeignKey(tblEvents)
    date_type = models.CharField(max_length=10, choices=registration_date_type)
    start_date = models.DateField(blank='true', null='true')
    end_date = models.DateField(blank='true', null='true') 

Событие может иметь раннюю, обычную и позднюю регистрацию.

Я написал функцию, которая принимает событие и возвращает одно из: Нет, «Раннее», «Нормальное» или «Позднее»

Все это прекрасно работает.

В моем приложении я хочу отобразить список событий и их статус регистрации. Поэтому я сделал запрос как таковой.

Events = tblEvents.objects.all()

Итак, у меня есть вся информация о событии, но не статус.

Какой самый простой / лучший способ получить статус для каждого события, отображаемого в шаблоне.

Я полагаю, что я могу написать шаблонный тег, но это, похоже, требует дополнительной работы.

Ответы [ 2 ]

5 голосов
/ 13 февраля 2010

Добавьте свойство к вашему Event классу, например ::10000 *

class Event:
  # stuff here

  @property
  def status(self):
     # do the same thing here as in your status function
     return status

Вы можете сделать в своем шаблоне:

{{ event.status }}
2 голосов
/ 13 февраля 2010

Я думаю, вы можете сделать ту функцию, которую вы написали, классом метода Event. Тогда вы можете просто позвонить из шаблона. Например ...

{% if event %}
    event.getStatus
{% endif %}

... но я не делал Джанго в течение короткого времени.

...