I am trying to pass a few variables but I am having some trouble and specifically have 3 questions.
How do I encode the url string to take into account the special characters in the string?
What is the correct regex I should use given the strings?
And how do I decode the urls that have been encoded?
view
author = 'foo'
video = 'bar123-456'
title = 'Santorum: "I'm Not a Visionary"' # in my version, it is referencing another variable so the syntax error doesn't occur. But I left it in here because I want to know how to deal with " and '.
related = 'http://gdata.youtube.com/feeds/api/users/haha/uploads?v=2&max-results=50'
url = urllib.quote('partner/' + author+ '/'+ video+'/'+ title + '/' + related)
#How do I encode this url string above to take into account the special characters in the string?
template
<a href="/{{url}}" > <img src="img.png" > </a>
urls.py
url(r'^partner/(?P<partner_name>[-w]+)/(?P<video_id>[-w]+)/(?P<video_title>[-w]+)//(?P<related_feed>)/$', 'video_player'),
#do I have to add anything to the regex?
video_player function
def video_player(request, author, video, related):
#how do I decode the urls that are encoded
edit
I tried it without related to see if it works but am still getting an error.
template:
<a href="{% url 'reserve.views.video_player' author video title %}" >
url:
url(r'^partner/(?P<author>[-w]+)/(?P<video>[-w]+)/(?P<title>[-w]+)/$', 'video_player'),
I get this error:
NoReverseMatch at /partner/BuzzFeed/
Reverse for ''video_player'' with arguments '('BuzzFeed', 'fXkqhhIlOtA', 'NY Yankees: 6 Essential Pieces of Postseason Memorabilia')' and keyword arguments '{}' not found.
full urls.py
urlpatterns = patterns('reserve.views',
url(r'^$', 'index'),
url(r'^browse/$', 'browse'),
url(r'^faq/$', 'faq'),
url(r'^about/$', 'about'),
url(r'^contactinfo/$', 'contactinfo'),
url(r'^search/$', 'search'),
(r'^accounts/', include('registration.backends.default.urls')),
(r'^accounts/profile/$', 'profile'),
(r'^accounts/create_profile/$', 'user_profile'),
(r'^accounts/edit_profile/$', 'edit_profile'),
url(r'^products/(?P<product_name>[-w]+)/reviews/$', 'view_reviews'),
url(r'^products/(?P<product_id>d+)/reviews/$', 'view_reviews'),
url(r'^user/(?P<user_id>[-w]+)/$', 'view_reviews_user'),
#url(r'^category/(?P<category_name>[-w]+)/$', 'view_product_category'),
url(r'^partner/(?P<partner_name>[-w]+)/$', 'partner_channel'),
url(r'^partner/(?P<author>[-w]+)/(?P<video>[-w]+)/(?P<video_title>[-w]+)/$', 'video_player'),
url(r'^partner/(?P<author>[-w]+)/(?P<video>w+)/(?P<title>w+)/$', 'video_player'),
url(r'^admin/', include(admin.site.urls)),
)
See Question&Answers more detail:
os