How to pass variables with spaces through URL in :Django
Solution 1
Allow spaces in your regex.
urlpatterns = patterns('kiosks.views', url(r'^([\w ]+)/$', 'dashboard'),)
And for the love of Pete, use reverse()
. It will help you catch silly mistakes like this.
Solution 2
yup .. allow spaces in your regex .. something like this works for me ..
url(r'^find-interiordesigners/state-(?P<state>.+?)/$',DesignersByCategoryCityState.as_view(),name='findInterior-state'),
Related videos on Youtube
Akamad007
Updated on June 04, 2022Comments
-
Akamad007 almost 2 years
I am having trouble in passing variables with spaces in them through the urls. Now Suppose I have an object
class Kiosks(models.Model): name = models.CharField(max_length = 200, unique = True) owner = models.ForeignKey(User)
Now the "name" entered for kiosk is say "Akash Deshpande" and saved. Now while redirecting to a new page in the views, i am using the "kiosk name " i.e.
messages.success(request,"Kiosk edited successfully") return HttpResponseRedirect('/kiosks/'+kiosk.name+'/')
The view which caters to this url is as follows:
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})
The main urls.py simply directs everything with "kiosks" to bellow urls kiosks urls.py
urlpatterns = patterns('kiosks.views',url(r'^(\w+)/$', 'dashboard'),)
Now instead of going to this page it is giving an error "Page not found". How do i pass variables which have space in them ? Is the question clear? Any help will be highly appreciated.