Tôi gặp sự cố lạ, tôi muốn thêm truy vấn toàn cục bằng bộ xử lý ngữ cảnh. Đây là cách tôi đã làm nó bằng cách following:Django, bộ xử lý ngữ cảnh mẫu
đã processor.py trong ứng dụng của tôi như vậy:
from myproject.myapp.models import Foo
def foos(request):
return {'foos': Foo.objects.all()}
và vào cuối setting.py của tôi, tôi đã thêm này:
TEMPLATE_CONTEXT_PROCESSORS = ('myapp.processor.foos',)
Cuối cùng tôi vượt qua quan điểm của tôi như thế này:
def index_view(request):
return render_to_response('index.html', {}, context_instance=RequestContext(request))
và tại mẫu index.html của tôi :
<select id="select_foo">
{% for foo in foos %}
<option value="/{{ foo.slug }}">{{ foo.name }}</option>
{% endfor %}
</select>
Và cuối cùng url của tôi:
(r'^$', 'myapp.views.index_view'),
hiển thị foos tôi mà không có bất kỳ vấn đề, tuy nhiên MEDIA_URL tôi và bối cảnh khác đã mất hết. gì có thể là vấn đề
Tôi kỳ lạ không có TEMPLATE_CONTEXT_PROCESSORS trong settings.py của mình, sử dụng Django 1.1.1 và media_url mặc định đã hoạt động tốt trước đó. – Hellnar
Đó là bởi vì nếu bạn không chỉ định nó, nó sử dụng các giá trị mặc định được chỉ định trong cài đặt djangos. Đó là cách tất cả các cài đặt django hoạt động, chúng có mặc định sẽ được sử dụng nếu bạn không có nó trong 'settings.py'. –
Cảm ơn bạn đã làm việc! Tôi đã nhận được lỗi vì vậy tôi loại bỏ "django.contrib.messages.context_processors.messages", Tôi nghĩ rằng đây là phiên bản phát triển của django, không 1.1.1 – Hellnar