ویوی پست های یک تاپیک

سلام براساس شمای کلی و وایرفریم زیر می خواهیم صفحه ای را بسازیم که در آن تمام پست های یک تاپیک به نمایش درآید. اول از  همه باید یک سری مسیر به برنامه اضافه کنیم. myproject/urls.py url(r’^boards/(?P<pk>\d+)/topics/(?P<topic_pk>\d+)/$’, views.topic_posts, name=’topic_posts’), همانطور که معلوم است در آدرس دهی بالا، از دو آرگومان استفاده کرده ایم. pk به […]

دسترسی به کاربر معتبر

سلام خوب! حالا وقت آن رسیده که در ویوی new_topic نام کاربر واردشده به سیستم را تنظیم کنیم. (در حال حاضر صرفاً نام اولین کاربر از دیتابیس گرفته و نمایش داده می شود.) boards/views.py (مشاهده کد کامل) from django.contrib.auth.decorators import login_required from django.shortcuts import get_object_or_404, redirect, render from .forms import NewTopicForm from .models import Board, […]

تست Login Required

سلام مثل همیشه نوبت نوشتن فایل تست مربوط به دکوراتور login_required@ شده اما قبل از آن می خواهیم فایل boards/tests/test_views.py را اندکی دستکاری کنیم. می خواهیم این فایل را به سه فایل جداگانه تقسیم کنیم. test_view_home.py شامل کلاس HomeTests (مشاهده کد کامل) test_view_board_topics.py شامل کلاس BoardTopicsTests (مشاهده کد کامل) test_view_new_topic.py شامل کلاس NewTopicTests (مشاهده کد […]

ویوهای محافظت شده | Protecting Views

سلام در این بخش باید از دسترسی کاربران غیرمجاز به ویوها جلوگیری کنیم. برای مثال فرم زیر برای ارسال پست جدید به کار می رود: در تصویر بالا، کاربری وارد سیستم نشده اما توانسته به فرم ارسال پست دسترسی پیدا کند. جنگو برای جلوگیری از این موضوع به صورت پیشفرض یک دکوراتور (decorator) برای ویو […]

مقدمه و مفهوم ORM

سلام در این فصل نحوۀ تعیین سطح دسترسی برای کاربران معتبر به فرم ها و ویوها را به شکل اصولی کار می کنیم و بعد از آن پست های یک تاپیک را به صورت لیستی نمایش می دهیم. در انتها برخی از ویژگی های Django ORM را مرور می کنیم. حالا سوالی که پیش میاد […]

تغییر پسورد

سلام این حالت برای کاربری است که از قبل وارد سیستم شده و حالا می خواهد پسورد خود را عوض کند. برای این کار به سه فیلد احتیاج است. پسورد قبلی، پسورد جدید و تأیید پسورد جدید. خوب در گام اول URL را اضافه می کنیم. myproject/urls.py url(r’^settings/password/$’, auth_views.PasswordChangeView.as_view(template_name=’password_change.html’), name=’password_change’), url(r’^settings/password/done/$’, auth_views.PasswordChangeDoneView.as_view(template_name=’password_change_done.html’), name=’password_change_done’), این فرم […]