添加上下文到django admin changelist_view



当更改列表显示时,我正在尝试添加一些上下文到Django管理视图

我有这个类

class LeadStatSummaryAdmin(admin.ModelAdmin):
change_list_template = 'admin/stats/leadstatsummary/change_list.html'
def get_queryset(self, request):
qs = super().get_queryset(request)
query=Q()
if 'from_date' in request.GET:
from_date = datetime.datetime.strptime(request.GET['from_date'], '%d/%m/%Y').strftime('%Y-%m-%d')
to_date = datetime.datetime.strptime(request.GET['to_date'], '%d/%m/%Y').strftime('%Y-%m-%d')
query = Q(date_of_lead__gte=from_date, date_of_lead__lte=to_date)
return qs.filter(query)
def changelist_view(self, request, extra_context=None):
response = super().changelist_view(
request,
extra_context=extra_context,)
qs = self.get_queryset(request)
response.context_data['date_form'] = DateForm(request.GET or None) 
response.context_data['data'] = qs. 
values('type_of_lead', 'may_contact_provider', 'type_of_care_care_home', 'type_of_care_home_care', 
'type_of_care_live_in_care', 'type_of_care_retirement_village') 
.order_by('type_of_lead', 'type_of_care_care_home', 'type_of_care_home_care', 
'type_of_care_live_in_care', 'type_of_care_retirement_village','may_contact_provider') 
.annotate(count=Count('type_of_lead'))
return response

这提供了一个日期表单,我可以用它来过滤查询集。当从菜单调用时运行良好(所以没有日期表单),但当我输入日期并提交时,我得到这个错误

'HttpResponseRedirect'对象没有属性'context_data'

它指的是这行代码

response.context_data['date_form'] = DateForm(request.GET or None) 

我不明白为什么这会导致错误以及如何修复。你能帮个忙吗

对于感兴趣的人,我决定使用模板标记代替

@register.filter
def get_lead_summary(qs):
return qs.values('type_of_lead', 'may_contact_provider', 'type_of_care_care_home', 'type_of_care_home_care', 
'type_of_care_live_in_care', 'type_of_care_retirement_village') 
.order_by('type_of_lead', 'type_of_care_care_home', 'type_of_care_home_care', 
'type_of_care_live_in_care', 'type_of_care_retirement_village','may_contact_provider') 
.annotate(count=Count('type_of_lead'))

{% for row in cl.result_list|get_lead_summary %}

来调用。

最新更新