当更改列表显示时,我正在尝试添加一些上下文到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 %}