Question

J'essaie d'activer les URL sluggifiées dans Django du formulaire que SO utilise: exemple.com/id/slug. Je n'ai aucun problème à activer les slugs, et des URL sont actuellement configurées sous la forme: http://127.0.0.1 : 8000 / articles / id / (par exemple. / Articles / 1 /) et cela fonctionne bien. Le URLpattern correspondant est:

(r'^(?P<object_id>\d+)/

Si je modifie le modèle d'URL en:

(r'^(?P<slug>\d+)/

Ensuite, je reçois les informations suivantes lorsque je navigue vers http://127.0.0.1.18000. / articles / autre-article / :

  

L'URL actuelle, articles / another-article /, ne correspond à aucun de ces éléments.

Si, toutefois, j'essaie:

http://127.0.0.1:8000/articles/1/

je reçois le message d'erreur:

  

Aucun article trouvé ne correspond à la requête

En fin de compte, je souhaite pouvoir accéder à un article par l'un des moyens suivants:

  

http://127.0.0.1:8000/articles/1/   ou    http://127.0.0.1:8000/articles/1/another-article/

, 'django.views.generic.list_detail.object_detail', info_dict),

Si je modifie le modèle d'URL en:

<*>

Ensuite, je reçois les informations suivantes lorsque je navigue vers http://127.0.0.1.18000. / articles / autre-article / :

  

L'URL actuelle, articles / another-article /, ne correspond à aucun de ces éléments.

Si, toutefois, j'essaie:

<*>

je reçois le message d'erreur:

  

Aucun article trouvé ne correspond à la requête

En fin de compte, je souhaite pouvoir accéder à un article par l'un des moyens suivants:

  

http://127.0.0.1:8000/articles/1/   ou    http://127.0.0.1:8000/articles/1/another-article/

, 'django.views.generic.list_detail.object_detail', info_dict),

Ensuite, je reçois les informations suivantes lorsque je navigue vers http://127.0.0.1.18000. / articles / autre-article / :

  

L'URL actuelle, articles / another-article /, ne correspond à aucun de ces éléments.

Si, toutefois, j'essaie:

<*>

je reçois le message d'erreur:

  

Aucun article trouvé ne correspond à la requête

En fin de compte, je souhaite pouvoir accéder à un article par l'un des moyens suivants:

  

http://127.0.0.1:8000/articles/1/   ou    http://127.0.0.1:8000/articles/1/another-article/

, 'django.views.generic.list_detail.object_detail', info_dict),

Si je modifie le modèle d'URL en:

<*>

Ensuite, je reçois les informations suivantes lorsque je navigue vers http://127.0.0.1.18000. / articles / autre-article / :

  

L'URL actuelle, articles / another-article /, ne correspond à aucun de ces éléments.

Si, toutefois, j'essaie:

<*>

je reçois le message d'erreur:

  

Aucun article trouvé ne correspond à la requête

En fin de compte, je souhaite pouvoir accéder à un article par l'un des moyens suivants:

  

http://127.0.0.1:8000/articles/1/   ou    http://127.0.0.1:8000/articles/1/another-article/

Était-ce utile?

La solution

J'aurais dû être un peu plus patient avant de poser cette question car j'ai compris la réponse:

(r'^(?P<object_id>\d+)/

Le premier modèle autorise les URL de la forme / articles / 1 /, ce qui signifie que la deuxième urlpattern (pour inclure le slug) est facultative.

, 'django.views.generic.list_detail.object_detail', info_dict), (r'^(?P<object_id>\d+)/(?P<slug>[-\w]+)/

Le premier modèle autorise les URL de la forme / articles / 1 /, ce qui signifie que la deuxième urlpattern (pour inclure le slug) est facultative.

, 'django.views.generic.list_detail.object_detail', info_dict),

Le premier modèle autorise les URL de la forme / articles / 1 /, ce qui signifie que la deuxième urlpattern (pour inclure le slug) est facultative.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top