我在通过 URL 传递带有空格的变量时遇到了问题。 现在假设我有一个对象
class Kiosks(models.Model):
name = models.CharField(max_length = 200, unique = True)
owner = models.ForeignKey(User)
现在为信息亭输入的“名称”是“Akash Deshpande”并保存。现在,在重定向到 View 中的新页面时,我使用的是“信息亭名称” 即
messages.success(request,"Kiosk edited successfully")
return HttpResponseRedirect('/kiosks/'+kiosk.name+'/')
迎合这个url的 View 如下:
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”的东西指向下面的 url 信息亭 urls.py
urlpatterns = patterns('kiosks.views',url(r'^(\w+)/$', 'dashboard'),)
现在不是转到此页面,而是给出错误“找不到页面”。我如何传递其中有空格的变量? 问题清楚了吗? 任何帮助将不胜感激。
最佳答案
在正则表达式中允许空格。
urlpatterns = patterns('kiosks.views', url(r'^([\w ]+)/$', 'dashboard'),)
看在 Pete 的份上,请使用 reverse()
。它将帮助您发现像这样的愚蠢错误。
关于python - 如何通过 :Django 中的 URL 传递带空格的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8238268/