2012-02-27 30 views
51

Tôi có thể sử dụng kiểm tra quyền của ứng dụng Auth bên trong mẫu ở Django không? (Tôi muốn hiển thị biểu mẫu đơn giản ở cuối mẫu cho người dùng đặc quyền)Kiểm tra giấy phép bên trong một mẫu ở Django

Và quan trọng hơn, tôi có nên làm điều đó ở tất cả hoặc không phải là "cách Django"?

+0

Đối với những người như tôi, người vấp ngã sau này, liên kết cho Django 1.5 đã thay đổi một chút ly. Hiện tại, thông tin có thể được tìm thấy trong tài liệu tại url này: https://docs.djangoproject.com/en/1.5/topics/auth/default/#permissions Không có câu trả lời nào thực sự thay đổi, nhưng đây chỉ là url mới :) – Xudonax

Trả lời

114

Nếu bạn đang tìm kiếm để kiểm tra các điều khoản trong các mẫu, các mã sau đây sẽ đủ:

{% if perms.app_label.can_do_something %} 
<form here> 
{% endif %} 

đâu mô hình đề cập đến mô hình mà người sử dụng cần quyền để xem các hình thức cho.

Tham khảo https://docs.djangoproject.com/en/stable/topics/auth/default/#permissions để biết thêm ví dụ.

quyền của người dùng hiện đang đăng nhập được lưu trữ trong các mẫu biến {{ perms }}

(Điều này đòi hỏi bộ xử lý bối cảnh sau đây để được kích hoạt: django.contrib.auth.context_processors.auth)

+2

Lưu ý rằng nếu bạn đăng nhập với tư cách superuser, 'perms.app_label.foobar' sẽ luôn đúng, ngay cả khi bạn viết sai chính tả tên cho phép. – Flimm

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