首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Django 1.9在基于类的视图中获取kwargs

Django 1.9在基于类的视图中获取kwargs
EN

Stack Overflow用户
提问于 2016-10-14 22:35:54
回答 2查看 835关注 0票数 0

我想知道是否有一种方法可以在基于类的视图中直接获取kwargs。我知道这可以在类内的函数中完成,但当我尝试这样做时,我遇到了问题:

views.py

代码语言:javascript
代码运行次数:0
运行
复制
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')})

我的网址如下

代码语言:javascript
代码运行次数:0
运行
复制
url(r'^employees/detalles/(?P<pk>[0-9]+)/$', login_required(views.EmployeeDetails.as_view()), name='employee-details')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-14 22:40:13

您不能在kwargs中使用success_url,因为当Django在服务器启动时加载类时,它无法访问请求。相反,重写get_success_url方法。

代码语言:javascript
代码运行次数:0
运行
复制
def get_success_url(self) 
    return reverse('employee-details', kwargs={'pk': self.kwargs['pk']})
票数 2
EN

Stack Overflow用户

发布于 2016-10-14 22:45:09

阿拉斯代尔的回答解决了你的问题。但是,您可以为您的get_absolute_url模型定义一个EmployeePersonal方法,它将充当视图的success_url

您甚至不需要为CreateViewUpdateView提供一个get_absolute_url() --如果可用的话,它们将在模型对象上使用get_absolute_url()

您将在模型对象的主键的self.id方法中使用get_absolute_url

参考资料:

模型形式

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40052924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档