تخطَّ إلى المحتوى

🎸 شرح Django

الصلاحيات (Authorization)

الدرس 18 من 25· ⏱ 1 دقائق قراءة

حماية View دالّيّة

from django.contrib.auth.decorators import login_required

@login_required
def dashboard(request):
    return render(request, "dashboard.html")

غير المسجّل يُحوَّل لصفحة الدخول.

حماية View صنفية

from django.contrib.auth.mixins import LoginRequiredMixin

class DashboardView(LoginRequiredMixin, ListView):
    model = Post

الصلاحيات (Permissions)

Django يولّد صلاحيات add/change/delete/view لكل نموذج:

@permission_required("blog.add_post")
def create_post(request):
    ...
if request.user.has_perm("blog.delete_post"):
    ...

المجموعات (Groups)

اجمع الصلاحيات في أدوار:

from django.contrib.auth.models import Group
editors = Group.objects.create(name="محرّرون")
editors.permissions.add(permission)
user.groups.add(editors)

التحقّق في القالب

{% if perms.blog.add_post %}
  <a href="...">منشور جديد</a>
{% endif %}

🎯 التالي: الملفّات الثابتة والوسائط.

هل كان هذا الدرس مفيدًا؟