(Django v 1.10.4) J'essaie d'utiliser deux applications distinctes dont le préfixe d'URL est la racine du site maintenir la structure url existante). Les deux applications/modèles en question sont "artistbio/Bio" et "pages/BasicPage". À l'heure actuelle, j'ai les modèles d'URL dans la configuration principale url (à l'origine, ils étaient dans leurs propres fichiers url.py respectifs, mais la question que j'ai est le même dans les deux cas):Django Indentical Modèle d'URL dans deux applications distinctes Conflit
from django.conf.urls import include, url
from django.contrib import admin
from django.conf import settings
from artistbio.views import BioDetail
from pages.views import PageDetail
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^(?P<slug>[\w\-]+)/', PageDetail.as_view()),
url(r'^(?P<slug>[-\w]+)/', BioDetail.as_view(), name='bio-detail'),
Tout ce que j'ai lu (et tous les mon expérience à ce jour) a montré que Django essayera de faire correspondre la requête à chaque modèle d'URL avant de donner une erreur "ne correspond à aucun modèle d'URL" ou une erreur "404 introuvable" si l'objet demandé n'existe pas. Mais maintenant quand les deux patterns sont ensemble comme indiqué ci-dessus, quand je demande un objet Bio via BioDetail, il essaie de faire correspondre le modèle d'URL pour PageDetail et me donne une erreur 404 (ce qui est logique) mais ça veut aussi dire que Django ne bouge jamais sur le modèle d'URL suivant où il serait certainement un match. Si je les change, et que je place le motif BioDetail au-dessus du motif PageDetail, comme je l'avais prévu, j'ai alors accès aux objets Bio mais pas aux objets Page.
J'ai lu toutes les entrées StackOverflow que j'ai pu trouver, j'ai lu tous les documents officiels et référencé Django Unleashed, mais la solution me semble toujours manquer!
Merci pour votre réponse Antwane. Donc, je prends cela pour signifier que ce que j'essaie de faire est tout simplement impossible? Sinon, je vais simplement combiner les deux modèles en un et passer à autre chose. – brandondavid
Oui, c'est impossible à moins de développer une vue spéciale pour gérer ce cas particulier (voir la fin de la réponse) – Antwane
Vous devriez avoir des schémas d'URL distincts pour les artistes et les pages de toute façon - sinon un jour ou l'autre vous aurez une page et l'artiste avec des limaces similaires et l'un suivra l'autre (ou vous aurez besoin d'une "page de désambiguïsation" à là wikipedia, ce qui est un peu un kludge). FWIW ayant tous les urls d'artistes préfixés avec "/ artist /" rend le sens parfait à mon humble avis, même d'un point de vue SEO. –