وبلاگ
جنگو

Function-Based View

سلام بدون هیچ توضیحی و مطابق با آموزش هایی که تا الان ارائه شده است ویوهایی که تا الان نوشته ایم همگی از نوع تابع و به شکل زیر خواهد است… views.py def new_post(request): if request.method == ‘POST’: form = PostForm(request.POST) if form.is_valid(): form.save() return redirect(‘post_list’) else: form = PostForm() …

خواندن ادامه
جنگو

استراتژی ویوهای مبتنی بر کلاس

سلام در این فصل قصد داریم ویوهای برنامه را با استفاده از مفهوم کلاس پیاده سازی کنیم. مسلماً باید به کدهای قبلی برگردیم و بخش هایی از آن را تغییر دهیم. بعد هم به مسائل مهم دیگر مثل صفحه بندی و شماره گذاری صفحات، Markdownها و حتی یک ویرایشگر ساده …

خواندن ادامه
جنگو

مهاجرت

سلام مهاجرت یکی از بخش ها و بحث های بنیادی در برنامه نویسی تحت وب با جنگو است. مهاجرت مربوط به توسعۀ مدل های مربوط به برنامه در شرایطی می شود که بعد از توسعۀ مدل ها، به صورت خودکار دیتابیس نیز خود را با مدل ها بروز رسانی کند …

خواندن ادامه
مقالات

چگونه در جنگو منوی بازشونده یا dropdown بسازیم؟ (فرم و مدل)

سلام هدف این است که می خواهیم یک لیست بازشونده با تعداد محدودی اختیار را در فرم به کاربر نمایش دهیم. شاید این راه به ذهن برسد که فیلد را از نوع متنی در نظر می گیریم و در قسمت فرانت اند صرفاً گزینه های خود را به کاربر نمایش …

خواندن ادامه
جنگو

QuerySets

سلام در این قسمت می خواهیم APIهای مدل ها را واکاوی کنیم. در ابتدا قصد داریم ویوی مربوط به صفحۀ اصلی را بهبود بخشیم. باید سه قسمت را درست کنیم. نمایش تعداد پست های ارسالی در یک بورد. نمایش تعداد تاپیک های ارسالی در یک بورد. نمایش آخرین کاربری که …

خواندن ادامه
جنگو

ویوی پاسخ به پست

سلام در این قسمت می خواهیم برای ارسال پاسخ به یک پست مشخص، ویوی جدید بسازیم. یک آدرس جدید اضافه می کنیم. myproject/urls.py url(r’^boards/(?P<pk>\d+)/topics/(?P<topic_pk>\d+)/reply/$’, views.reply_topic, name=’reply_topic’), یک فرم  جدید برای پاسخ به پست می سازیم. boards/forms.py (مشاهده کد کامل) from django import forms from .models import Post class PostForm(forms.ModelForm): class …

خواندن ادامه
جنگو

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

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

خواندن ادامه
جنگو

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

سلام خوب! حالا وقت آن رسیده که در ویوی 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 …

خواندن ادامه
جنگو

تست 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 …

خواندن ادامه
جنگو

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

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

خواندن ادامه
هرگونه استفادۀ از این آموزش به صورت رایگان و با ارجاع به تمدن جایز است.