有关django模板中对象的额外数据

时间:2010-02-12 22:14:46

标签: python django django-models django-templates

我有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') 

活动可以有早期,正常和延迟注册期。

我写了一个函数,它接受一个事件并返回以下之一:None,“Early”,“Normal”或“Late”

一切都很好。

在我的应用中,我想显示一个事件列表以及它们的注册状态。所以我这样做了一个查询。

Events = tblEvents.objects.all()

所以我掌握了有关该事件的所有信息,但没有状态。

获取模板中显示的每个事件的状态的最简单/最佳方法是什么。

我认为我可以编写一个模板标签,但这似乎更多的工作应该是必要的。

2 个答案:

答案 0 :(得分:5)

Event类添加属性,例如:

class Event:
  # stuff here

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

您可以在模板中执行此操作:

{{ event.status }}

答案 1 :(得分:2)

我认为你可以使用这个函数编写一个Event类的方法。然后你可以从模板中调用它。例如......

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

...但我有一段时间没有做过Django。