ویوهای محافظت شده | Protecting Views
سلام
در این بخش باید از دسترسی کاربران غیرمجاز به ویوها جلوگیری کنیم. برای مثال فرم زیر برای ارسال پست جدید به کار می رود:
در تصویر بالا، کاربری وارد سیستم نشده اما توانسته به فرم ارسال پست دسترسی پیدا کند. جنگو برای جلوگیری از این موضوع به صورت پیشفرض یک دکوراتور (decorator) برای ویو دارد.
boards/views.py (مشاهده کد کامل)
from django.contrib.auth.decorators import login_required @login_required def new_topic(request, pk): # ...
به همین سادگی! حالا اگر کاربری بدون ورود به سیستم آدرس مربوط به ارسال پست جدید را وارد کند به صفحۀ لاگین انتقال می یابد.
به آدرس زیر توجه کنید.
?next=/boards/1/new/
می توانیم روی قالب لاگین کار کنیم تا مقادیر پارامتر next در صفحه نمایش داده شده و تجربه کاربری یا همان UX را بهبود دهیم.
templates/login.html (مشاهده کد کامل)
<form method="post" novalidate> {% csrf_token %} <input type="hidden" name="next" value="{{ next }}"> {% include 'includes/form.html' %} <button type="submit" class="btn btn-primary btn-block">Log in</button> </form>
بنابراین در صورت ورود موفقیت آمیز به صفحه ای وارد خواهیم شد که در آن بوده ایم.
همانطور که مشخص است پارامتر next به صورت پیشفرض در جنگو قرار دارد.
ترجمۀ اختصاصی توسط تمدن
مطلب بعدی: تست Login Required
مطلب قبلی: مقدمه و مفهوم ORM
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگو شرکت کنید؟نظری بدهید!