2011-07-13 31 views

Trả lời

4

Bộ lọc Django không được cấp quyền truy cập đặc biệt vào ngữ cảnh mà từ đó chúng được gọi, chúng chỉ là các hàm cũ thuần túy.

Bạn sẽ cần chuyển bất kỳ thứ gì bạn muốn sử dụng trong hàm.

https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

+1

Buồn. Tôi cho rằng tôi luôn có thể làm điều gì đó với bộ xử lý ngữ cảnh trung gian hoặc mẫu để thiết lập một luồng cục bộ, nhưng ... yuck. – dcrosta

+2

Mặc dù trước tiên nó cảm thấy PITA, việc thay thế một bộ lọc bằng thẻ mẫu là khá dễ dàng với '@ register.simple_tag (takes_context = True)' –

0

Xem câu trả lời của tôi ở đây:

https://stackoverflow.com/a/28098279/201945

Nhưng, trong ngắn hạn, bạn có thể truy cập vào context từ bên trong một bộ lọc tùy chỉnh bằng cách xuất từ ​​các cuộc gọi stack khi và chỉ khi , bộ lọc được gọi trong khi hiển thị.

Đây là một giải pháp lộn xộn. Emptor caveat.

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