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

lov*_*ing 0 python django django-templates django-models

我有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') 
Run Code Online (Sandbox Code Playgroud)

事件可以具有早期,正常和晚期注册期.

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

一切都很好.

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

Events = tblEvents.objects.all()
Run Code Online (Sandbox Code Playgroud)

所以我有关于事件的所有信息,但没有状态.

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

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

Fel*_*ing 5

添加属性到您的Event类,例如:

class Event:
  # stuff here

  @property
  def status(self):
     # do the same thing here as in your status function
     return status
Run Code Online (Sandbox Code Playgroud)

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

{{ event.status }}
Run Code Online (Sandbox Code Playgroud)