下面是我的一个视图,我在我的url上得到了想要的结果
localhost/employee/0001/报告对象
但是,当我改变我的网址slug它不会重定向到404页,而我将显示相同的结果,上面和下面的网址给我相同的结果。如何使页面转到404时,段塞被改变。注意:两者显示相同的结果tat表示url对生成的结果没有影响
localhost/employee/0002/报告对象
class EmployeeReporteeView(LoginRequiredMixin, ListView):
model = employee
template_name = "employee_reportees.html"
slug_field = "slug"
def get_context_data(self, **kwargs):
self.base_qs = super(EmployeeReporteeView, self).get_queryset()
context = super(EmployeeReporteeView, self).get_context_data(**kwargs)
context['primary_list'] = self.base_qs.filter(primary=self.request.user.employee.empid)
context['secondary_list'] = self.base_qs.filter(secondary=self.request.user.employee.empid)
return context
只是给一个想法,我有下面这个细节视图视图,当我改变slug重定向到404 当员工0001登录时,此页面显示其个人资料 localhost/员工/0001 其中,as localhost/employee/0002将重定向到404,因为他看不到其他员工的详细信息
class EmployeeDetailView(LoginRequiredMixin, DetailView):
model = employee
template_name = "employee_detail.html"
context_object_name = "employee_detail"
def get_queryset(self):
base_qs = super(EmployeeDetailView, self).get_queryset()
return base_qs.filter(email=self.request.user)
# urls.py
url(r"^(?P<slug>[\w-]+)/$", EmployeeDetailView.as_view(), name="employee_detail"),
url(r"^(?P<slug>[\w-]+)/reportees/$", EmployeeReporteeView.as_view(), name="employee_reportees"),
查询集仅基于一个会话值(这里是
request.user.employee.empid
)。因此,每个slug都会给出相同的结果,对应于当前登录的员工。如果要显示在URL中编写的slug的报告对象,需要修改queryset以使用
slug
参数。比如:相关问题 更多 >
编程相关推荐