如何通过URL传递带空格的变量:Django

时间:2011-11-23 06:48:09

标签: python django django-urls

我在通过url传递带空格的变量时遇到了麻烦。 现在假设我有一个对象

class Kiosks(models.Model):
    name = models.CharField(max_length = 200, unique = True)
    owner = models.ForeignKey(User)

现在为自助服务终端输入的“名称”是“Akash Deshpande”并保存。现在,当重定向到视图中的新页面时,我正在使用“kiosk名称” 即。

 messages.success(request,"Kiosk edited successfully") 
 return HttpResponseRedirect('/kiosks/'+kiosk.name+'/')

迎合这个网址的观点如下:

def dashboard(request, kiosk_name):
    kiosk =Kiosks.objects.get(name__iexact = kiosk_name)
    deal_form = DealsForm(kiosk=kiosk)
    code_form = CodeForm()
    unverified_transactions = get_unverified_transactions(kiosk)
    return render(request,'kiosks/dashboard.html',{'kiosk':kiosk, 
                                                   'deal_form' : deal_form,
                                                   'code_form' : code_form,
                                                   'unverified_transactions' : unverified_transactions})

主要的urls.py只是通过“自助服务终端”将所有内容指向网址 kiosks urls.py

urlpatterns = patterns('kiosks.views',url(r'^(\w+)/$', 'dashboard'),)

现在不是转到此页面而是发出错误“找不到页面”。如何传递其中有空格的变量? 问题清楚了吗? 任何帮助将受到高度赞赏。

3 个答案:

答案 0 :(得分:10)

在正则表达式中留出空格。

urlpatterns = patterns('kiosks.views', url(r'^([\w ]+)/$', 'dashboard'),)

对于皮特的爱,请使用reverse()。它会帮助你捕捉这样的愚蠢错误。

答案 1 :(得分:2)

是..允许你的正则表达式中的空格..这样的东西对我有用..

url(r'^find-interiordesigners/state-(?P<state>.+?)/$',DesignersByCategoryCityState.as_view(),name='findInterior-state'),

答案 2 :(得分:0)

这是我用来忽略正则表达式中空格的相关示例,其中 \s 正在努力避免 url 名称中的空格

<块引用>

url(r'^api/product/(?P[\w\s]+)/$',ProductDetailApiView.as_view()),