之前,通用視圖我有以下看法:附加額外的值在Django查詢集遞給模板
class AppointmentListView(LoginRequiredMixin, ListView):
queryset = Appointment.objects.prefetch_related('client','patients')
我需要能夠以一個額外的變量添加到每個基於以下返回約會對象:
status_choices={
'STATUS_UPCOMING':'default',
'STATUS_ARRIVED':'primary',
'STATUS_IN_CONSULT': 'success',
'STATUS_WAITING_TO_PAY':'info',
'STATUS_PAYMENT_COMPLETE':'warning',
}
的值(「默認」,「主要」等)對應於我想根據預約的類型使用標準的CSS classesin訓練營主題。例如,'默認'會產生一個灰色的按鈕,'警告'一個紅色的按鈕等。
我需要根據記錄的狀態映射每個約會記錄到某個css按鈕('即將到來'將顯示'默認'類等)。
我的初始想法是遍歷設置查詢並建立一個單獨的陣列/字典約會PK映射到給定的CSS類如 1:'success', 2:'warning'
,再通,在作爲上下文變量。
但我想知道是否可以直接將值添加到每個Appointment對象(可能將查詢集保存爲列表?)這將是一個更清潔的解決方案,但我不知道應該如何接近。
任何想法非常讚賞
感謝。我將如何去更新查詢集中的每個對象?例如,將'css_class ='warning''僅添加到滿足該要求的對象。 –
您可能正在創建自定義表單類型,並在字段類型上重載'render_options'方法。但事實上,這是一個單獨的問題,可能不應該在這裏的評論部分詢問 – nkhumphreys
聽起來像我第一次問到的問題:如何在queryset返回到模板之前向每個Appointment對象添加值。 所以沒有簡單的方法來'攔截'查詢集並修改它? –