我有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()
所以我掌握了有关该事件的所有信息,但没有状态。
获取模板中显示的每个事件的状态的最简单/最佳方法是什么。
我认为我可以编写一个模板标签,但这似乎更多的工作应该是必要的。
答案 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。