如何在返回重定向中获取pk参数

时间:2019-03-20 07:21:45

标签: django django-views

我有一个观点:

@login_required
def add_auditor(request, pk, pk2):
    company_details = get_object_or_404(Company, pk=pk)
    user_profile = get_object_or_404(Profile, pk=pk2)

    company_details.auditor.add(user_profile.name)
    company_details.save()

    return redirect(reverse('company:search_auditors' , pk=company_details.pk))

此视图中的重定向URL不起作用,因为其中包含主键参数。

当我尝试add_auditor或运行视图时,这是我的错误:

TypeError: reverse() got an unexpected keyword argument 'pk'

如何在重定向URL中传递主键参数?

任何想法

2 个答案:

答案 0 :(得分:2)

数据应通过 kwargs 参数传递,如下所示,

return redirect(reverse('company:search_auditors', kwargs={"pk": company_details.pk}))

参考:Django reverse()

答案 1 :(得分:1)

您应该通过以下语法在反向()函数中传递kwarg:

return redirect(reverse('company:search_auditors' , kwargs={'pk':company_details.pk}))

more details on reverse