मुझे एक अजीब समस्या है, मैं संदर्भ प्रोसेसर का उपयोग कर एक वैश्विक क्वेरी जोड़ना चाहता हूं। यह मैं इसे कैसे following द्वारा किया है:Django, टेम्पलेट संदर्भ प्रोसेसर
TEMPLATE_CONTEXT_PROCESSORS = ('myapp.processor.foos',)
:
from myproject.myapp.models import Foo
def foos(request):
return {'foos': Foo.objects.all()}
और मेरे setting.py के अंत में मैं इस जोड़ लिया है:
जैसे मेरे एप्लिकेशन में एक processor.py बनाया
def index_view(request):
return render_to_response('index.html', {}, context_instance=RequestContext(request))
और मेरे index.html टेम्पलेट पर:
अन्त में मैं इस रूप में मेरे विचार से पारित :
<select id="select_foo">
{% for foo in foos %}
<option value="/{{ foo.slug }}">{{ foo.name }}</option>
{% endfor %}
</select>
और अंत में मेरा url: बिना किसी समस्या के
(r'^$', 'myapp.views.index_view'),
मेरे कम महत्वपूर्ण चीज़ें प्रदर्शन, हालांकि मेरी MEDIA_URL और अन्य संदर्भों चले गए हैं। मुद्दा
मैं डिफ़ॉल्ट रूप से डिफ़ॉल्ट Django 1.1.1 और media_url का उपयोग कर ठीक से काम कर रहा था, मेरे सेटिंग्स में TEMPLATE_CONTEXT_PROCESSORS नहीं है। – Hellnar
ऐसा इसलिए है क्योंकि यदि आप इसे निर्दिष्ट नहीं करते हैं, तो यह djangos सेटिंग्स में निर्दिष्ट डिफ़ॉल्ट मानों का उपयोग करता है। इस प्रकार सभी django सेटिंग्स काम करते हैं, उनके पास एक डिफ़ॉल्ट है जिसका उपयोग तब किया जाएगा यदि आपके पास यह 'सेटिंग.py' में नहीं है। –
धन्यवाद अब काम कर रहा है! मुझे त्रुटि मिल रही थी इसलिए मैंने हटा दिया "django.contrib.messages.context_processors.messages", मुझे लगता है कि यह django के विकास संस्करण के लिए है, 1.1.1 – Hellnar