[英]Django 1.9 get kwargs in class based view
我想知道是否有一种方法可以在基于类的视图中直接获取kwarg。 我知道这可以在类中的函数中完成,但是当我尝试这样做时遇到了问题:
views.py
class EmployeesUpdateStudies(UpdateView):
form_class = form_ES
model = EmployeePersonal
template_name = 'employeesControll/employees_studies_update_form.html'
success_url = reverse('employee-details', kwargs={'pk': kwargs.get('pk')})
我的网址如下
url(r'^employees/detalles/(?P<pk>[0-9]+)/$', login_required(views.EmployeeDetails.as_view()), name='employee-details')
Alasdair的答案解决了您的问题。 但是,您可以为EmployeePersonal
模型定义一个get_absolute_url
方法,该方法将充当视图的success_url
:
你甚至都不需要提供
success_url
为CreateView
或UpdateView
-他们会用get_absolute_url()
如果可用的模型对象。
您将在get_absolute_url
方法self.id
用于模型对象的主键。
参考:
您不能在success_url
使用kwargs
,因为当Django在服务器启动时加载该类时,它无权访问该请求。 改写get_success_url
方法。
def get_success_url(self)
return reverse('employee-details', kwargs={'pk': self.kwargs['pk']})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.