6
votes

URL imbriquées Django

Comment puis-je nier l'URL appelle à Django? Par exemple, si j'ai deux modèles définis comme xxx

avec les fichiers URL suivants

URL racine xxx

URL de poteau xxx

commentaires URL xxx

mais quand je vais à / post / 2 / commentaires / 1, je suis Compte tenu d'une page non trouvée par erreur indiquant xxx

Ce n'est pas un problème, ce n'est pas un problème si je visite / post / 2 / commentaires est celui-ci non autorisé par Django d'avoir des appels d'URL imbriqués comme celui-ci ?


0 commentaires

3 Réponses :


6
votes

Vous avez un $ à la fin de r '^ (? p [0-9] +) / commentaires / $' .

. Cela signifie que Django ne correspondra qu'avec cette URL quand il n'y a rien de côté.

de sorte que toute URL plus longue ne soit actuellement pas considérée. Par conséquent, vous devez mettre à jour l'expression régulière à: xxx


0 commentaires

13
votes

Je pense que c'est probablement parce que vous finissez la regex avec le signe dollar $ . Essayez cette ligne sans le signe du dollar: xxx

espère qu'il aide!


0 commentaires

0
votes

ci-dessus Django 2.0 Vous pouvez utiliser simplement ...

urlpatterns = [
    path('<pk>/comments/', include('comment.urls')),
]


0 commentaires