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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Übergeben Sie diese Variablen, wie es auf der Vorlage, es mit url, vor dem senden der Vorlage nur diese im Blick.
View.py
Vorlage
Url.py
BEARBEITEN
Wenn Sie gehen wollen, ohne Verwandte parameter, oder wenn es Zweifel-video kann auch Keine sein dann eben diese aus Ihrer Sicht:
nun können Sie die url durch
Ich ersetzte die in Zusammenhang mit dem Titel. Aus dem Fehler, dass ich bin immer Referenzen alle Variablen, die ich übergeben will (Fehler-Anzeige im edit-Frage oben), aber Sie sagt, es ist NoReverseMatch-und Schlüsselwort-Argumente nicht gefunden.
InformationsquelleAutor Ahsan