2010-02-24 18 views
39

आपने URL जो एक first_name और Django में last_name स्वीकार करता है:बनाना एक Regex Django यूआरएल टोकन वैकल्पिक

('^(?P<first_name>[a-zA-Z]+)/(?P<last_name>[a-zA-Z]+)/$','some_method'), 

कैसे आप title की वैकल्पिक यूआरएल टोकन शामिल होता है, किसी भी नई लाइनें बनाने के बिना। एक आदर्श स्थिति में, क्या मैं यह मतलब है:

#A regex constant 
OP_REGEX = r'THIS IS OPTIONAL<title>[a-z]' 
#Ideal URL 
('^(?P<first_name>[a-zA-Z]+)/(?P<last_name>[a-zA-Z]+)/OP_REGEX/$','some_method'), 

title में एक डिफ़ॉल्ट मान देने के लिए यानी

('^(?P<first_name>[a-zA-Z]+)/(?P<last_name>[a-zA-Z]+)/(?P<title>[a-zA-Z]+)/$','some_method'), 
एक नई लाइन बनाने के बिना

उत्तर

68
('^(?P<first_name>[a-zA-Z]+)/(?P<last_name>[a-zA-Z]+)(?:/(?P<title>[a-zA-Z]+))?/$','some_method'), 

मत भूलना इस संभव है राय।

+0

इसके लिए धन्यवाद। मैं जस्ट वैकल्पिक '' शीर्षक 'का यूआरएल कैसे बनाउंगा? यानी '(?:/(? पी [ए-जेए-जेड] +))? (?:/(? पी? पी [ए-जेए-जेड] +))? किसी भी मदद के लिए धन्यवाद – Federer

+7

ध्यान दें कि? बाहरी समूह में महत्वपूर्ण है। इसके बिना, यूआरएल नेविगेट किए जाने पर ठीक से काम करेगा, लेकिन रिवर्स() अंदर तर्क को नोटिस नहीं करेगा। – Chris

+1

इस के उपयोग से मेरे लिए रिवर्स विफल हो गया है, इसके बजाय 2 यूआरएल बनाए गए हैं ... – radtek

संबंधित मुद्दे