从 get_queryset () django 更新上下文参数值
update context parameter value from get_queryset () django
我的密码是
class Leads(LoginRequiredMixin, ListView):
def get_queryset(self):
q = self.request.GET.get('q', "all")
if q == "customer":
qs = alllead.objects.filter(isCustomer="yes")
elif q == "lead":
qs = alllead.objects.filter(isCustomer="no")
else:
qs = self.queryset
return qs
def get_context_data(self, **kwargs):
context = super(Leads, self).get_context_data(**kwargs)
count = self.queryset.count()
context['count'] = count or "000"
return context
所以我正在过滤我的查询集,我还需要将记录数设置为上下文参数"count"
但记录数没有更新
所以我将我的代码更改为
def get_queryset(self):
q = self.request.GET.get('q', "all")
if q == "customer":
qs = alllead.objects.filter(isCustomer="yes")
elif q == "lead":
qs = alllead.objects.filter(isCustomer="no")
else:
qs = self.queryset
return qs
def get_context_data(self, **kwargs):
context = super(Leads, self).get_context_data(**kwargs)
q = self.request.GET.get('q', "none")
if q == "customer":
count = alllead.objects.filter(isCustomer="yes").count()
elif q == "lead":
count = alllead.objects.filter(isCustomer="no").count()
else:
count = self.queryset.count()
context['count'] = count or "000"
return context
我认为我在复制代码,这不是正确的做法。
谁能建议我更新的最佳方式
context['count'] = qs.count()
#inside get_queryset()
一旦调用超类 get_queryset()
,那么 qs 将作为 alllead_list
添加到上下文中;你可以从那里访问它。
def get_context_data(self, **kwargs):
context = super(Leads, self).get_context_data(**kwargs)
count = context['alllead_list'].count()
但是,我认为您根本不需要在视图中执行此操作;您可以通过访问 {{ allead_list.count|default:"000" }}
.
在模板中轻松地执行此操作
编辑 由于查询集是分页的,您可以直接从分页器中获取计数:context['paginator'].count
或在模板中 {{ paginator.count }}
.
我的密码是
class Leads(LoginRequiredMixin, ListView):
def get_queryset(self):
q = self.request.GET.get('q', "all")
if q == "customer":
qs = alllead.objects.filter(isCustomer="yes")
elif q == "lead":
qs = alllead.objects.filter(isCustomer="no")
else:
qs = self.queryset
return qs
def get_context_data(self, **kwargs):
context = super(Leads, self).get_context_data(**kwargs)
count = self.queryset.count()
context['count'] = count or "000"
return context
所以我正在过滤我的查询集,我还需要将记录数设置为上下文参数"count" 但记录数没有更新 所以我将我的代码更改为
def get_queryset(self):
q = self.request.GET.get('q', "all")
if q == "customer":
qs = alllead.objects.filter(isCustomer="yes")
elif q == "lead":
qs = alllead.objects.filter(isCustomer="no")
else:
qs = self.queryset
return qs
def get_context_data(self, **kwargs):
context = super(Leads, self).get_context_data(**kwargs)
q = self.request.GET.get('q', "none")
if q == "customer":
count = alllead.objects.filter(isCustomer="yes").count()
elif q == "lead":
count = alllead.objects.filter(isCustomer="no").count()
else:
count = self.queryset.count()
context['count'] = count or "000"
return context
我认为我在复制代码,这不是正确的做法。 谁能建议我更新的最佳方式
context['count'] = qs.count()
#inside get_queryset()
一旦调用超类 get_queryset()
,那么 qs 将作为 alllead_list
添加到上下文中;你可以从那里访问它。
def get_context_data(self, **kwargs):
context = super(Leads, self).get_context_data(**kwargs)
count = context['alllead_list'].count()
但是,我认为您根本不需要在视图中执行此操作;您可以通过访问 {{ allead_list.count|default:"000" }}
.
编辑 由于查询集是分页的,您可以直接从分页器中获取计数:context['paginator'].count
或在模板中 {{ paginator.count }}
.