Câu trả lời của Joseph là tốt cho trường hợp đơn giản của bạn, nhưng trên thực tế không phải is_staff
cũng không phải is_superuser
là hoàn toàn phù hợp. Giả sử trang của bạn là, ví dụ: /polls/
(danh sách các đối tượng Poll
, trong một ứng dụng được gọi là poll
), bạn nên kiểm tra poll.change_poll
và poll.delete_poll
permissions cụ thể.
Trong một mẫu:
{% for poll in polls %}
{% if perms.poll.change_poll %}<a href='/polls/edit/{{ poll.id }}'>Edit</a>{% endif %}
{% if perms.poll.delete_poll %}<a href='/polls/delete/{{ poll.id }}'>Delete</a>{% endif %}
{% endfor %}
Hoặc trong một cái nhìn using has_perm
:
if not request.user.has_perm('poll.change_poll'):
return HttpResponseForbidden('Nope!')
Hoặc trong một cái nhìn using a decorator:
@permission_required('poll.change_poll')
def edit_poll(request, poll_id):
# ....
Bạn có thể gán các quyền trực tiếp cho người sử dụng , cho một nhóm (và sau đó đặt người dùng vào nhóm đó) hoặc bằng cách đặt is_superuser
.
Vui lòng đặt nhận xét phù hợp làm giải pháp! – erikbwork