Seite 1 von 1
[Django] - SLUGIFIED Verlinkungen - wie ?!
Verfasst: Donnerstag 22. Juli 2010, 18:27
von bugzz
Guten Tag, Experten
Haber wieder eine Frage. Vor paar Tagen bin Ich auf
diesen Blog gestossen. Dort habe ich gesehen wie der "Eigentümer/Entwickler" des Bloges die Verlinkung zur Blog-Einträge realisiert hat. Und zwar, jeder Link zum Blog-post sieht so aus: jeder Blog-post hat eine Headline(Schlagzeile), diese werden mittels template-filter SLYGIFY in SLUGIFIED Headline umgewandelt und als Verlinkung verwenden. Beislpiel:
Shalgzeile: Flojax: A unobtrusive and easy strategy for creating AJAX-style web applications
ULR: http://webseite.domain/blog/post/
flojax-unobtrusive-and-easy-strategy-creating-ajax/
Das zu realiseren ist keine grose Sache, da es den SLUGIFY template-filter gibt.
ABER!, wie ist das möglich? Ich mein, natürlich kann man die Schlagzeile ausm URL 'rausschneidem'
Code: Alles auswählen
.....
(r'^/blog/post/(?P<slugified_post_headline>\w+)/$'), views.get_post),
...
aber diesen
string kann man doch nicht als einen direkten (wie z.B POST-ID) 'verweiss' zur einem (und nur einem) Blogeintag verwenden, oder ?
Natürlich könnte man dann QEURY-STRING verwenden wie z.B.:
http://webseite.domain/blog/post/flojax-unobtrusive-and-easy-strategy-creating-ajax
?post_id=5
dann aber ist das keine schöne und saubere URL mehr.
Ideen ?
Re: [Django] - SLUGIFIED Verlinkungen - wie ?!
Verfasst: Donnerstag 22. Juli 2010, 18:49
von DasIch
So einen slug speichert man am besten in der Datenbank. Wenn der slug schon existiert hängt man halt eine Zahl dran, so lässt sich am einfachsten sicherstellen dass er nur einmal vorkommt.
Re: [Django] - SLUGIFIED Verlinkungen - wie ?!
Verfasst: Donnerstag 22. Juli 2010, 20:51
von bugzz
Hmm die Gedanke hatte Ich auch, hielt diese aber für 'unprofessionell' und hatte gehofft, es gäbe eine 'elegante' Lösung/Art und Weise werte 'behind the scenes' weiter zu geben.
Naja, bin dann bei /blog/post/post-id/slugified-headline/ Variante geblieben
Re: [Django] - SLUGIFIED Verlinkungen - wie ?!
Verfasst: Donnerstag 22. Juli 2010, 20:52
von DasIch
bugzz hat geschrieben:Hmm die Gedanke hatte Ich auch, hielt diese aber für 'unprofessionell' und hatte gehofft, es gäbe eine 'elegante' Lösung/Art und Weise werte 'behind the scenes' weiter zu geben.
Das ist die professionelle elegante Lösung.
Re: [Django] - SLUGIFIED Verlinkungen - wie ?!
Verfasst: Donnerstag 22. Juli 2010, 22:01
von ms4py
DasIch hat geschrieben:bugzz hat geschrieben:Hmm die Gedanke hatte Ich auch, hielt diese aber für 'unprofessionell' und hatte gehofft, es gäbe eine 'elegante' Lösung/Art und Weise werte 'behind the scenes' weiter zu geben.
Das ist die professionelle elegante Lösung.
Im Gegensatz zu der Variante, die Id in der URL mitzugeben

Re: [Django] - SLUGIFIED Verlinkungen - wie ?!
Verfasst: Donnerstag 22. Juli 2010, 22:13
von bugzz
Hmm das hätte ich echt nie gedacht.
Extra DB-Spalte mit dem slug-version statt id in URL... :K
Re: [Django] - SLUGIFIED Verlinkungen - wie ?!
Verfasst: Donnerstag 22. Juli 2010, 22:41
von Leonidas
bugzz hat geschrieben:Extra DB-Spalte mit dem slug-version statt id in URL... :K
Wieso, was ist daran auszusetzen? Man hat natürlich dass Problem dass es Out of Date ist, wenn man den Titel ändert, aber üblicherweise aktualisiert man das Slug-Feld danach nicht mehr, um die URL nicht kaputtzumachen. Letztendlich ist der (die? das?) Slug auch nur eine Art ID, die zu "Blogartikelerstellungszeit" generiert wird. Nur dass sie halt nicht numerisch ist.
Re: [Django] - SLUGIFIED Verlinkungen - wie ?!
Verfasst: Freitag 23. Juli 2010, 11:04
von bugzz
Ok. Profis sind für slugified-field im DB, vielleicht soll mans ausprobieren
Dann mal eine andere Frage. Wie realisiert man das. Im moment verwende ich ADMIN panel um die Daten hinzuzufügen.
Wie weit ich weis, admin modul enthält einige geile features um sich: erstens - in den app integrieren zu können und zweites - den UI des admin-panels bezüglish eines bestimmten App anzupassen. Ich vemute aber, dieses verfahren mit dem Slug ist nicht in der feature liste, oder? Wahscheinlich muss man das vom Hand programmieren, ja ?
Re: [Django] - SLUGIFIED Verlinkungen - wie ?!
Verfasst: Freitag 23. Juli 2010, 12:38
von nemomuk
Du musst dir halt deine Admin Seite customizen und das vllt. mit einem kleinen Javascript realisieren und per Ajax den Titel slugify'en.
Re: [Django] - SLUGIFIED Verlinkungen - wie ?!
Verfasst: Freitag 23. Juli 2010, 13:51
von bugzz
ahojnnes hat geschrieben:Du musst dir halt deine Admin Seite customizen und das vllt. mit einem kleinen Javascript realisieren und per Ajax den Titel slugify'en.
Ich denke sowas gibts schon vorgefertigt. Habe bisschen gegoogelt und habe
das hefunden (ModelAdmin.prepopulated_fields)
Ich denke, Ich soll damit ein bisschen rumspielen...Wie es aussieht, es sönnte tatsächlich eine Mischung aus SlugField() in der DB(Model) und automatische 'Slugifizierung' und 'Einfügung' der Shalgzeile (oder wie-auch-immer) in den SlugField in der DB sein