2010-06-16 34 views
8

đây là một câu hỏi khá cơ bản (tôi mới sử dụng Django) nhưng tôi đang gặp sự cố khi sử dụng một tập hợp biến trong chế độ xem của tôi bên trong mẫu của tôi. Nếu tôi khởi tạo chuỗi hoặc danh sách bên trong chế độ xem của tôi (ví dụ: h = "hello") và sau đó cố gắng gọi nó trong mẫu:
{{ h }}
không có đầu ra cũng như lỗi. Tương tự, nếu tôi cố gắng sử dụng biến trong mẫu của tôi không tồn tại:
Sử dụng biến xem Django bên trong các mẫu

{{ asdfdsadf }} 

lại không có báo cáo lỗi nào. Điều này có bình thường không? Và làm thế nào tôi có thể sử dụng các biến của tôi trong các mẫu của tôi. Cảm ơn!

Trả lời

22

Để có quyền truy cập vào biến trong mẫu, nó cần phải ở trong ngữ cảnh được sử dụng để hiển thị mẫu đó. Tôi đoán là bạn không chuyển từ điển ngữ cảnh sang mẫu khi bạn render nó.

http://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render-to-response

Các "từ điển" tham chiếu có một cuốn từ điển có chứa tất cả các biến bạn muốn có sẵn trong bối cảnh. Ví dụ:

return render_to_response('your_template.html', {'h': h}) 

Khi lỗi "không có lỗi" xảy ra ... Đó là cài đặt mặc định cho biến mẫu không hợp lệ. Bạn có thể thay đổi điều đó trong cài đặt của dự án nếu bạn muốn.

http://docs.djangoproject.com/en/dev/ref/settings/#template-string-if-invalid

3

Có! Điều này là bình thường. Lỗi như vậy trong các mẫu không âm thầm và điều này dự kiến ​​ở Django.

hiển thị chính xác mẫu sử dụng render_to_response('your_template.html', {'h':h}) (đó cũng là một shortcut khó chịu render_to_response('your_template.html', locals()) nếu từ điển ngữ cảnh của bạn là rất lớn)

đây là một số giải thích với các ví dụ: http://www.djangobook.com/en/beta/chapter04/ (phần 'Làm thế nào biến không hợp lệ được xử lý')

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