Ứng dụng Django của tôi hiện có URL được bảo vệ bởi các chức năng 'permission_required()'.Tìm các quyền bắt buộc của các URL Django mà không cần gọi chúng?
Chức năng này được gọi theo ba cách khác nhau.
- Là trang trí trong views.py, với thông số được mã hóa cứng.
- Là một hàm đơn giản, với thông số được tạo tự động, trong Chế độ xem chung dựa trên lớp tùy chỉnh.
- Là một hàm gọi chế độ xem trong urls.py, với thông số được mã hóa cứng.
Tôi hiện đang thêm hệ thống menu vào ứng dụng và tôi cần thực hiện các mục menu cho biết người dùng có quyền yêu cầu URL của từng mục nhập trình đơn hay không. (Hoặc bằng cách chuyển sang màu xám hoặc ẩn các mục đã nói.)
Có cách nào để truy vấn các quyền cần thiết cho URL mà không cần yêu cầu URL không?
Giải pháp duy nhất mà tôi đã nghĩ đến cho đến nay là thay thế trang trí bằng một trình trang trí không tham số 'menu_permssion_required()' và mã hóa tất cả các quyền vào cấu trúc Python. Điều này có vẻ giống như một bước lùi, như tùy chỉnh của tôi dựa trên lớp Generic Views đã autogenerate quyền yêu cầu của họ.
Bất kỳ đề xuất nào về cách tạo hệ thống menu phản ánh quyền URL cho người dùng hiện tại?
Tôi luôn mã hóa các menu trong các mẫu, nó đơn giản và cho phép các menu ngữ cảnh với {% extends%}. – jpic
@jplc xin lỗi, tôi không thể hiểu được nhận xét của bạn liên quan đến câu hỏi như thế nào. Điều này đặc biệt về quyền. Quyền được cắt ngang, không được liên kết với tiền tố URL hoặc tương tự. – fadedbee
Bạn có thể kiểm tra các quyền trong mẫu: https://gist.github.com/25c03f286337c66cc860 Đây là tiêu chuẩn khá trong các dự án django từ những gì tôi đã thấy, đây là tài liệu về mô-đun django perms được đề cập: https: // docs.djangoproject.com/en/1.0/topics/auth/#id6 Tuy nhiên, quan điểm của tôi là thời gian làm cho một "hệ thống" cho một menu HTML có thể được chi tiêu tốt hơn cho những thứ khác. – jpic