Django URLs - Wie in mehreren Kategorien über die saubere URL zu übergeben, ohne die Notwendigkeit?

StackOverflow https://stackoverflow.com/questions/844276

Frage

Ich will so bleiben von GET params. Sie mögen nicht POST verwenden, und ich habe mindestens zwei verschiedene Kategorien für die URL zu erstellen.

Die Besucher werden zunächst aufgefordert, einen Standort wählen weicht kann man von zum Beispiel sein: http://foo.com/United-States/ || http://foo.com/United-States/California/ || http://foo.com/United-States/California/San-Francisco -Gebiet / || http://foo.com/United-States/California/San-Francisco/

Sobald ein Standort gewählt wird, dann können sie eine Kategorie auswählen, die man von beispielsweise sein kann:

http://foo.com/Electronics/ || http://foo.com/Electronics/Camera/ || http://foo.com/Electronics/Camera/Digital/ || http://foo.com/Electronics/Camera/Digital/SLR/

Also, wie würde ich mich über einen in beide der oben genannten URL kombiniert, sobald sie mit der Auswahl des Standorts und die Kategorie fertig sind?

Ich muss möglicherweise in der Seitenzahl für Paginierung zu übergeben. ( http://foo.com/page/2/ )

Ich möchte die URL sauber und selbsterklärend halten. Ich weiß, wie zu einer Zeit, eine Art von URL zu tun, aber nicht mehr Arten kombiniert werden.

Wenn ich eine GET tun wäre, dann wäre ich tun: http: // foo.com/?locid=23323&catid=335&page=2 , aber Ich mag, um die Vorteile von Djangos sauberen URL und bleibt Weg von dem? & Zeug.

Danke,

VN44CA

War es hilfreich?

Lösung

Ich denke, dass dies zu vielen Informationen in der URL sein würde. Ich gehe davon aus, dass jeder Standort seine eindeutige ID hat, die gleiche Kategorie geht. Warum eine URL nicht bauen:

http://foo.com/United-States/Electronics/

http://foo.com/California/Digital/

http://foo.com/San-Francisco/SLR/

und so weiter ...

2 Argumente genug sind, um in Ihrem Fall. Oder Sie können Kategorienamen ändern, um mehr sinnvoll zu sein.

http://foo.com/Electronics/Camera/Digital/ => http://foo.com/Digital-Cameras/

Andere Tipps

Je nachdem, wie Sie die Standortdaten verwenden, und wie oft ein Benutzer möchte den Speicherort ändern, kann es am besten in der Session gespeichert wird anstatt es in der URL angegeben.

Zum Beispiel, ich bin unwahrscheinlich für digitale SLR-Kameras in San Francisco Suche beginnen und dann für Basketball in Baltimore gehen suchen.

Offensichtlich wird dies nicht ausreicht, wenn Sie permalinks an einem beliebigen Ort-Kategorie Kombination wollen, though.

Nachdem er eine Weile darüber nachgedacht, fand ich, dass die beste Lösung (für mich) zu diesem ist eine Zeichenfolge zu haben, nur halten alle Argumente, die ich in einem sauberen URL benötigen.

Also, wenn Benutzer zuerst kommt auf http://foo.com/ sie sind mit einem Standort auszuwählen dargestellt. Cookies sind an dieser Stelle leer.

So geht ein Benutzer vor und wählt Groß-State, die URL wird wie folgt aussehen: http: / /foo.com/12334_0_0_0/United-States/ und die Lage Cookie wird auf 1234 gesetzt, die die ID für den Standort Vereinigten Staaten ist.

Nun wählt der Benutzer Kalifornien und die URL-Änderungen an http://foo.com/ 1235_0_0_0 / United-States-California / und Cookie ist aus Vereinigten Staaten bis 1235 ersetzen, die die ID für den Standort California ist. An diesem Punkt wählt der Benutzer Kategorie Electronics. so dass die URL Änderungen an http://foo.com/1235_3333_0_0/Electronics/ und 3333 werden gespeichert in der Kategorie Plätzchen.

Wenn die Benutzer sinkt auf SLR-Kamera nach unten, dann er / sie werden sehen http: // foo.com/1235_3344_0_0/SLR-Cameras/ .

Auf diese Weise hält der erste Teil der URL Spur von bis zu 4 Argumenten, die herumgereicht werden können, und die Namen (Schnecken) ist nur für die Präsentation und SEO.

ich denke, das Recht funktionieren würde? Es wäre cool, den x_y_z_p Teil der URL in einigen zufälligen Text verschlüsselt zu haben und zu dekodieren wieder in args & Zahlen.

Lassen Sie mich wissen, was Sie denken?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top