Python 如何将视图中的字符串参数传递给url?

Python 如何将视图中的字符串参数传递给url?,python,django,django-views,django-urls,Python,Django,Django Views,Django Urls,我有一个url,它接受任何字符串作为参数。当我重定向到此url时,我想在视图内部传递一个参数。在Django你是怎么做到的 我的url定义如下: url(r'^user_view/(?P<service_name>.+)$', views.user_view, name='user_view'), 如果使用快捷方式,它将自动反向解析所提供视图名称的URL并传递参数: from django.shortcuts import redirect def my_view(request

我有一个url,它接受任何字符串作为参数。当我重定向到此url时,我想在视图内部传递一个参数。在Django你是怎么做到的

我的url定义如下:

url(r'^user_view/(?P<service_name>.+)$', views.user_view, name='user_view'),
如果使用快捷方式,它将自动反向解析所提供视图名称的URL并传递参数:

from django.shortcuts import redirect

def my_view(request):
    service = RestaurantService.objects.get(pk=5)
    return redirect('user_view', service_name=service.service_name) 

谢谢你的回复。我仍然会遇到同样的错误:user_view()只接受2个参数(1个给定),我认为这是因为服务的名称中可能包含空格?@MichaelSmith不确定,请尝试用
^user_view/(?P[\w|w]+)$
替换regexp。例如,它会与名为“John's Steak House”的服务中断,“迈克21世纪酒吧”。当我从如下html页面重定向时::/services/user_view/{{service.service_name}},重定向和呈现正确的页面没有问题。在您的解决方案中呈现的一个示例服务名称是:“Tasty Pizza”,实际上我收回了这一点,“Tasty Pizza”也不起作用。很抱歉给你带来了困惑。嗯,我会进一步研究这个问题。你能发布一些你的
user\u视图
视图代码吗?你有没有可能还有另一个
name='user\u视图
?我将上面的url配置粘贴到一个新的django项目中,并
重定向('user_view',service_name='Tasty Pizza')
效果良好当我显式右键输出一个字符串(如'Tasty Pizza')时它会起作用,但当我传递一个变量(如service.service_name)时,它会给出一个错误。特别地,它从不读取service.service\u name,即使我可以在控制台中打印此字符串。当我尝试传入一个不包含参数的变量时,看起来是这样的:www.example.com/services/user\u view我找到了它。我在用户视图中出错。谢谢你的洞察力
from django.shortcuts import redirect

def my_view(request):
    service = RestaurantService.objects.get(pk=5)
    return redirect('user_view', service_name=service.service_name)