Wie gebe ich Variablen in django über die url?

Ich versuche, vorbei an ein paar Variablen, aber ich bin mit einigen Schwierigkeiten und speziell 3 Fragen.
Wie kodiere ich den url-string zu berücksichtigen, die Besondere Zeichen in der Zeichenfolge?
Was ist die richtige regex sollte ich angesichts der strings?
Und wie kann ich das Dekodieren von urls, die kodiert worden?

anzeigen

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?

Vorlage

<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-Funktion

def video_player(request, author, video, related):
    #how do I decode the urls that are encoded

Bearbeiten

Versuchte ich es, ohne Verwandte zu sehen, ob es funktioniert, aber bin noch immer ein Fehler.

Vorlage:

<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'),

Bekomme ich diesen Fehler:

NoReverseMatch at /partner/BuzzFeed/
Reverse für "video_player" mit den Argumenten '('BuzzFeed', 'fXkqhhIlOtA', 'NY Yankees: 6 Wesentliche Teile der Postseason Memorabilia')' - und Schlüsselwort-Argumente '{}' nicht gefunden.

voll 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)),
)
title = 'Santorum: "I'm Not a Visionary"' ungültige syntax!
Wie bekomme ich die url zu registrieren?
ist das nur eine Zeile in Ihrem urls.py? haben Sie fügen Sie diese url-Muster auf der anderen urlpatterns?
Nein; ich fügte hinzu, die vollständige urls.py in ein edit oben
Ich habe versucht, das entfernen reserve.Blick in die Vorlage, aber immer noch der gleiche Fehler.

InformationsquelleAutor sharataka | 2012-10-10

Schreibe einen Kommentar