تست ویوی بروزرسانی

سلام درون فولدر boards/tests یک فایل با نام test_view_edit_post.py ایجاد می کنیم. قسمتی که باید تغییر کرده و اضافه شود به شکل زیر است. boards/tests/test_view_edit_post.py (مشاهده کد کامل) from django.contrib.auth.models import User from django.test import TestCase from django.urls import reverse from ..models import Board, Post, Topic from ..views import PostUpdateView class PostUpdateViewTestCase(TestCase): ”’ Base test […]

ویوی بروزرسانی | Update View

سلام بیایید به پیاده سازی پروژۀ خودمان باز گردیم. این بار می خواهیم از GCBV برای پیاده سازی ویوی مربوط به edit post استفاده کنیم. boards/views.py (مشاهده کد کامل) from django.shortcuts import redirect from django.views.generic import UpdateView from django.utils import timezone class PostUpdateView(UpdateView): model = Post fields = (‘message’, ) template_name = ‘edit_post.html’ pk_url_kwarg = […]

Generic Class-Based View

سلام اما GCBVها… این یک داستان متفاوت است. همانگونه که قبلاً گفتم، GCBVها، CBVهای از پیش تعریف شده ای هستند که قرار است کارهای مرسوم و رایج را انجام دهند. پیاده سازی GCBVها نیاز به برنامه نویسی سنگین بر پایۀ ارث بری های چندگانه و سایر روش های شی گرایی و صرف چندین و چند […]

Class-Based View

سلام یک CBV، ویویی است که یک کلاس ویو را توسعه می دهد. تفاوت اصلی در آن است که درخواست ها و requestهایی که درون کلاس نیاز به پردازش دارند به صورت جداگانه و بسته به متدهای http شامل get, post, put, head,… می شوند. به تعبیر دیگر اول چک می کنیم که متد http […]

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() return render(request, ‘new_post.html’, {‘form’: form}) […]

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

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