如何在:Django 中通过 URL 传递带空格的变量
Posted
技术标签:
【中文标题】如何在:Django 中通过 URL 传递带空格的变量【英文标题】:How to pass variables with spaces through URL in :Django 【发布时间】:2012-01-04 12:19:35 【问题描述】:我在通过 url 传递带有空格的变量时遇到了麻烦。 现在假设我有一个对象
class Kiosks(models.Model):
name = models.CharField(max_length = 200, unique = True)
owner = models.ForeignKey(User)
现在为 kiosk 输入的“名称”是“Akash Deshpande”并保存。现在,在重定向到视图中的新页面时,我使用的是“kiosk name” 即
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 只是将所有带有“信息亭”的东西引导到下面的 url 信息亭 urls.py
urlpatterns = patterns('kiosks.views',url(r'^(\w+)/$', 'dashboard'),)
现在不是去这个页面,而是给出一个错误“页面未找到”。我如何传递其中有空格的变量? 问题清楚了吗? 任何帮助将不胜感激。
【问题讨论】:
urls.py 中的视图入口是什么样的? 【参考方案1】:在你的正则表达式中允许空格。
urlpatterns = patterns('kiosks.views', url(r'^([\w ]+)/$', 'dashboard'),)
为了Pete 的爱,请使用reverse()
。它将帮助您发现此类愚蠢的错误。
【讨论】:
【参考方案2】:是的..在你的正则表达式中允许空格..这样的东西对我有用..
url(r'^find-interiordesigners/state-(?P<state>.+?)/$',DesignersByCategoryCityState.as_view(),name='findInterior-state'),
【讨论】:
【参考方案3】:这是我用来忽略正则表达式中空格的相关示例,其中 \s 正在努力避免 url 名称中的空格
url(r'^api/product/(?P
[\w\s]+)/$',ProductDetailApiView.as_view()),
【讨论】:
以上是关于如何在:Django 中通过 URL 传递带空格的变量的主要内容,如果未能解决你的问题,请参考以下文章
如何从我的 C# 代码中通过自定义 url 方案访问传递到我的应用程序的值?