2013-03-16 23 views
22

Ứng dụng có được tự động liệt kê trong Settings.py hoặc tôi có phải thêm nó không? Tôi đang có một thời gian khó khăn vô cùng phục vụ lên một tập tin hình ảnh trong phát triển và các tài liệu là quá terse cho hương vị của tôi và không chính tả những điều rõ ràng với tôi vì một lý do nào đó. Tôi muốn kiểm tra xem template_context_processors của tôi là gì, nhưng nó nằm ở đâu? Nó không có trong tệp settings.py của tôi. Tôi có cần chỉnh sửa thông thường không?Trình xử lý ngữ cảnh mẫu ở đâu trong Django 1.5?

("django.contrib.auth.context_processors.auth", 
"django.core.context_processors.debug", 
"django.core.context_processors.i18n", 
"django.core.context_processors.media", 
"django.core.context_processors.static", 
"django.contrib.messages.context_processors.messages") 
+0

những gì bạn đã đăng là danh sách bộ xử lý ngữ cảnh mẫu – catherine

Trả lời

45

Trong settings.py bạn có thể xác định cài đặt TEMPLATE_CONTEXT_PROCESSORS.

giá trị mặc định Tuy nhiên, django đã xác định cho thiết lập này đó là

("django.contrib.auth.context_processors.auth", 
"django.core.context_processors.debug", 
"django.core.context_processors.i18n", 
"django.core.context_processors.media", 
"django.core.context_processors.static", 
"django.core.context_processors.tz", 
"django.contrib.messages.context_processors.messages") 

Nếu bạn muốn thêm bộ xử lý bối cảnh mẫu tùy chỉnh của bạn mà việc duy trì bộ xử lý mặc định, bạn có thể làm như sau trong settings.py

import django.conf.global_settings as DEFAULT_SETTINGS 

TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
    'custom_context_processors.my_context_processor', 
) 

Tham khảo TEMPLATE_CONTEXT_PROCESSORS doc.

+0

Cảm ơn bạn rất nhiều. Tôi đã tạo một dự án Django mới và không thấy TEMPLATE_CONTEXT_PROCESSORS được điền sẵn trong tệp settings.py được tạo tự động. Để phục vụ các tệp tĩnh, tôi có cần phải sao chép và dán ở trên hoặc tôi đang đi sai đường dẫn ở đây không? – user798719

+0

@ user798719, tôi không nghĩ vậy. Cài đặt đó là theo mặc định, bạn không cần chỉnh sửa cài đặt đó. Ngoài ra, đừng nghĩ rằng điều này là cần thiết để phục vụ các tập tin tĩnh. – Rohan

+0

Cảm ơn. Một câu hỏi bổ sung. Nếu tôi muốn thêm một bộ xử lý ngữ cảnh tùy chỉnh mới, tôi có thể nối thêm một chút vào bộ xử lý ngữ cảnh mặc định hay không cần sao chép toàn bộ cấu hình bộ xử lý ngữ cảnh trên settings.py của tôi? – Miquel

3

Bạn có thể kiểm tra bộ xử lý ngữ cảnh mà ứng dụng của bạn đang sử dụng bằng cách nhảy vào vỏ python django và nhập cài đặt của bạn.

$ manage.py shell 
> from django.conf import settings 
> settings.TEMPLATE_CONTEXT_PROCESSORS 

Nếu bạn không ghi đè chúng, thì mặc định sẽ được hiển thị.

Trên tệp tĩnh, hãy kiểm tra STATICFILES_DIRS của bạn, nơi máy chủ phát triển của django sẽ xem xét để phân phát nội dung tĩnh: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATICFILES_DIRS.

tôi sử dụng này trong settings.py tôi:

from os.path import join, abspath 
PROJECT_ROOT = abspath(join(dirname(__file__), '..', '..')) 
STATICFILES_DIRS = [join(PROJECT_ROOT, 'public'), ] 

này sẽ không giống nhau cho bạn vì nó sẽ phụ thuộc vào cách bạn bố trí dự án của bạn.

Các vấn đề liên quan