Django:将参数传递到URL模式名

Django:将参数传递到URL模式名,django,Django,在下面的示例中,我试图在我的一个视图中使用URL模式名(即“update_profile”),而不是绝对路径(/profile/str:pk/update)。这样,如果我以后更改url路径,我就不必每次使用绝对路径时都进行更改 我的问题:如何将“pk”传递到模式名中? 我试过这样的方法: success\u url='update\u profile%%(pk) 但这似乎不起作用 url.py path('/profile/<str:pk>/update', views.Profil

在下面的示例中,我试图在我的一个视图中使用URL模式名(即“update_profile”),而不是绝对路径(/profile/str:pk/update)。这样,如果我以后更改url路径,我就不必每次使用绝对路径时都进行更改

我的问题:如何将“pk”传递到模式名中? 我试过这样的方法:

success\u url='update\u profile%%(pk)

但这似乎不起作用

url.py

path('/profile/<str:pk>/update', views.ProfileUpdateView.as_view(), name='update_profile'),
def submit_profile_form(request, pk):
    
    if request.method == "POST":
        success_url = 'update_profile' //  <------ How do I pass 'pk' in here?
        ...
        return redirect(success_url)
path('/profile//update',views.ProfileUpdateView.as_view(),name='update_profile'),
视图.py

path('/profile/<str:pk>/update', views.ProfileUpdateView.as_view(), name='update_profile'),
def submit_profile_form(request, pk):
    
    if request.method == "POST":
        success_url = 'update_profile' //  <------ How do I pass 'pk' in here?
        ...
        return redirect(success_url)
def提交个人资料表单(请求,主键):
如果request.method==“POST”:
success\u url='update\u profile'/接受位置参数和命名参数,因此您可以编写:

def submit_profile_form(request, pk):
    
    if request.method == "POST":
        success_url = 'update_profile'
        # …
        return redirect(success_url, pk=pk)

正是我想要的。我知道答案很简单。谢谢你,朋友!