2009-11-16 3 views
2

Je veux créer un wiki, et je dois assigner pour chaque URL une vue. Chaque URL peut contenir des lettres (A-Z, a-z), des chiffres et des signes de ponctuation ('.', ',', '/', '-', '_'). Comment puis-je faire l'expression?Autoriser/dans l'URL django

Je veux quelque chose comme ceci:

(r'^(?P<wiki_page>\w+)/$', 'www.wiki.views.page') 

mais cela ne fonctionne que pour les lettres, les chiffres et '_'.

Répondre

1

Vous pouvez remplacer \ w dans la regex par une regex pour correspondre à ce que vous recherchez. Peut-être

(r'^(?P<wiki_page>[A-Za-z_/,\.-]+)$, 'www.wiki.views.page') 

ou similaire.

+0

Vous avez oublié d'inclure des chiffres ('0-9') – harto

4

Essayez cette regexp:

r'^(?P<wiki_page>[\w.,/_\-]+)/$' 
0

Je pense qu'il est plus d'une question regex

r'^(?P<wiki_page>[\w\.,_/\-]+)/$' 

vous pouvez construire des classes de caractères au-dessus de ceux qui existent déjà

Je pense que vous devez échapper le tiret, ou le dernier, parce que le tiret définit la gamme de caractères et vous pouvez obtenir un effet secondaire inattendu de tiret.