Dans mon projet Django, dans URLS.PY Fichier J'ai un lien comme celui-ci: OK Tout le travail effectué lorsque j'ai une URL comme: p> < un href = "http://127.0.0.1:8000/poliamb/test1" rel = "nfollow noreferrer"> http://127.0.0.1:8000/poliamb/test1 p> mais J'ai eu une erreur lorsque j'ai par exemple P> http://127.0.0.1 : 8000 / POLIAMB / TEST1-Autre P> S'il y a le - Connexion dans le chemin d'URL Django Obtenez l'URL non définie ERROR P> Quelqu'un peut-il accueillir également les URL avec - signe? p> Tellement merci d'avance p> p>
3 Réponses :
Le problème de votre URL Expression régulière est le Modification de votre regex sur \ w + code> qui correspond à n'importe quel nombre de caractères Word. Les caractères de mots sont A-Z, A-Z, 0-9 et Underscore (
_ code>) p>
test1 code> passe ce test, mais
test1-autre code> n'est pas. P>
r '^ poliamb \ / (? p
- code>) aussi bien. p>
Si vous ne voulez pas correspondre à des traits d'union consécutifs, vous pouvez éventuellement répéter un groupe non capturant contenant un trait d'union et 1 caractères de mots dans la motif il y a un Démo Regex P> P> (?: - - \ w +) * code>
/ code> à la fin qui n'est pas dans l'exemple de données. S'il est facultatif, vous pouvez utiliser
/? $ Code> à la fin. P>
Il est préférable d'utiliser chemin code> et non
url code>.
URL code> est obsolète et remplacé par
re_path code>.
str code> prendra une chaîne sauf le caractère SLASH ("/ P). P >
path(route='poliamb/<slug:m_path>/', view=pol_data, name='pol_data'),