我有以下观点:
class AppointmentListView(LoginRequiredMixin, ListView):
queryset = Appointment.objects.prefetch_related('client','patients')
我需要能够根据以下内容为每个返回的Appointment对象添加一个额外的变量:
status_choices={
'STATUS_UPCOMING':'default',
'STATUS_ARRIVED':'primary',
'STATUS_IN_CONSULT': 'success',
'STATUS_WAITING_TO_PAY':'info',
'STATUS_PAYMENT_COMPLETE':'warning',
}
值('default','primary'等)对应于我想根据约会类型使用的Bootcamp主题中的标准css类。例如,'default'产生一个灰色按钮,'警告'一个红色按钮等。
我需要根据记录的状态将每个约会记录映射到某个css按钮('即将'将显示'默认'类等)。
我最初的想法是遍历查询集并构建一个单独的数组/字典,将Appointment pk映射到给定的css类,例如
1:'success', 2:'warning'
,然后将其作为上下文变量传递。
但是我想知道我是否可以直接将值添加到每个Appointment对象(可能将查询集保存为列表?)这将是一个更清晰的解决方案,但我不确定应该如何处理它。
非常感谢任何想法
答案 0 :(得分:1)
你应该像这样重载ListView的get_queryset方法
def get_queryset(self, **kwargs):
queryset = super(AppointmentListView, self).get_queryset(**kwargs)
# Add new elements here
...
return queryset