Tôi đã đến một điểm mà tôi cần phải chuyển các biến nhất định cho tất cả các chế độ xem của tôi (chủ yếu là các biến loại xác thực tùy chỉnh).tạo bộ xử lý ngữ cảnh của riêng tôi trong django
Tôi được cho biết viết bộ xử lý ngữ cảnh của riêng mình là cách tốt nhất để thực hiện việc này, nhưng tôi đang gặp một số vấn đề.
tập tin cài đặt của tôi trông như thế này
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.contrib.messages.context_processors.messages",
"sandbox.context_processors.say_hello",
)
Như bạn thấy, tôi có một module gọi là 'context_processors' và một chức năng trong đó gọi là 'say_hello'.
nào trông giống như
def say_hello(request):
return {
'say_hello':"Hello",
}
Tôi có quyền để thừa nhận bây giờ tôi có thể làm như sau trong quan điểm của tôi?
{{ say_hello }}
Hiện tại, điều này không có gì trong mẫu của tôi.
Quan điểm của tôi trông giống như
from django.shortcuts import render_to_response
def test(request):
return render_to_response("test.html")
'context_instance' là những gì bị thiếu! Cảm ơn TM – dotty
Theo dõi, tôi cần bối cảnh này như thế nào? Làm thế nào đến tôi không cần điều này nếu tôi sử dụng hệ thống auth django? – dotty
Chế độ xem tích hợp của Django xử lý điều này cho bạn (chúng sử dụng 'RequestContext'). Hãy nghĩ về bộ xử lý ngữ cảnh mà bạn đã tạo. Nó lấy 'request' làm đối số. Điều đó có nghĩa là bạn cần bằng cách nào đó đưa ra yêu cầu hiện tại cho logic kết xuất. 'RequestContext' về cơ bản chỉ xử lý logic đơn giản lặp qua tất cả các bộ xử lý ngữ cảnh và chuyển yêu cầu hiện tại tới chúng, sau đó cập nhật ngữ cảnh trang với kết quả. –