صفحه بندی با استفاده از FBV

سلام کد زیر مربوط به پیاده سازی صفحه بندی با استفاده از توابع است. boards/views.py (مشاهده کد کامل) from django.db.models import Count from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.shortcuts import get_object_or_404, render from django.views.generic import ListView from .models import Board def board_topics(request, pk): board = get_object_or_404(Board, pk=pk) queryset = board.topics.order_by(‘-last_updated’).annotate(replies=Count(‘posts’) – 1) page = […]

صفحه بندی و شماره گذاری صفحات

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

ویوی لیست | List View

سلام با بازتعریف ویوی قبلی می توانیم از مزایای CBV بهره مند شویم. در این مثال می خواهیم صفحۀ اصلی را تغییر دهیم. در این صفحه ما صرفا تمام بوردها را از دیتابیس گرفته و در HTML لیست می کنیم. boards/views.py from django.shortcuts import render from .models import Board def home(request): boards = Board.objects.all() return […]

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

سلام درون فولدر 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ها نیاز به برنامه نویسی سنگین بر پایۀ ارث بری های چندگانه و سایر روش های شی گرایی و صرف چندین و چند […]