2011-10-05 18 views
5

डब्ल्यूआईएच कक्षा-आधारित विचार Django में बहुत बेहतर हो गए हैं, मैं कक्षा आधारित दृश्य को लागू करते समय "सर्वोत्तम प्रथाओं" समस्या में भाग ले रहा हूं। यह मूल रूप से URL template tag पर आता है।Django: यूआरएल conf के लिए सर्वश्रेष्ठ अभ्यास, यूआरएल टेम्पलेट टैग

इस तरह एक urls.py को देखते हुए:

{% url some_app.views.index %} 

या एक यूआरएल का नाम::

{% url some_app_index %} 

urlpatterns = patterns('some_app.views', 
    url(r'^$', 'index', name='some_app_index') 
) 

कि टैग कर देने वाले दृश्य के लिए एक रास्ता ले जा सकते हैं


अब, कक्षा-आधारित यूआरएल conf के साथ, कोई आपको समाप्त करता है इस तरह एक यूआरएल के साथ पी:

from some_app.views import Index 

urlpatterns = patterns('', 
    url(r'^$', Index.as_view(), name='some_app_index') 
) 

जिसका मतलब है कि {% url some_app.views.index %} अब इस्तेमाल नहीं काम करता है लेकिन {% url some_app_index %} अभी भी होता है। (और {% url some_app.views.Index.as_view %} एक समाधान प्रतीत नहीं होता है)।


तो, मेरा सवाल यह है कि, टेम्पलेट से URL को संदर्भित करने के लिए सबसे अच्छा अभ्यास क्या है?

इस बिंदु पर, मुझे लगता है कि path.to.view विधि का उपयोग करना बेहतर था, क्योंकि इसे स्पष्ट रूप से नामित किया गया था। हालांकि, कक्षा-आधारित विचारों के साथ बेहतर और बेहतर दिखने के साथ, url name का उपयोग करने का एक बेहतर तरीका है? उस स्थिति में, ऐपस्पेसिंग ऐप डेवलपर द्वारा नामित एट्रिब्यूट पर पूरी तरह से निर्भर है जिस तरह से यूआरएल नाम को अन्य ऐप्स से अलग किया जाता है ...

विचार? मुझे Django दस्तावेज़ीकरण में "ऐसा करने का तरीका" नहीं मिला, लेकिन अगर किसी ने इसके बारे में लिखा है, तो मुझे इसे पढ़ना अच्छा लगेगा।

उत्तर

8

मैं हमेशा नामों का उपयोग करता हूं।

समस्या के अलावा आप पथ के साथ उल्लेख करते हैं, तो आपको एक समस्या भी होगी यदि आपके पास एक ही दृश्य को इंगित करने वाले दो यूआरएल हैं।

+0

मैं सोच रहा था कि क्या हो सकता है। यह स्पष्ट रूप से बेहतर है! – Alvaro

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