Generic Class-Based View

سلام

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

کار با GCBVها شاید در ابتدا کمی سخت به نظر بیاید. به خصوص اینکه پیاده سازی های آن بسیار پیچیده و تو در تو بوده و بعضاً یک کلاس با 8 کلاس والد مختلف در ارتباط بوده و این در حالی است که مستندات کمی هم در مورد آن ها تولید شده. در زمان کار با GCBVها خوب است که سایت CCBV.co.uk را برای دسترسی و ارجاع سریع باز نگه دارید. اما با تمام این توصیفات جای هیچ گونه نگرانی نیست. چون تمدن اینجاست تا تمام این موارد را با هم مرور کنیم. برای شروع بیایید یک مثال از GCBV را با هم مرور کنیم.

views.py

در اینجا از ویوهای عام یا همان جنریک برای ساخت شی های مدل استفاده کرده ایم. این قطعه کد تمام کارهای مربوط به پردازش فرم و ذخیره سازی داده ها در صورت معتبر بودن فرم را انجام می دهد.

مشابه CBV در خصوص GCBV هم روش خاصی برای استفاده در urls.py وجود دارد.

urls.py

سایر مثال های GCBV مربوط به DetailView, DeleteView, FormView, UpdateView و ListView می شود.

ترجمۀ اختصاصی توسط تمدن

 

مطلب بعدی: ویوی بروزرسانی | Update View

مطلب قبلی: Class-Based View

بدون دیدگاه

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جنگو
صفحه بندی با استفاده از 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 = …

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

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

جنگو
ویوی لیست | List View

سلام با بازتعریف ویوی قبلی می توانیم از مزایای CBV بهره مند شویم. در این مثال می خواهیم صفحۀ اصلی را تغییر دهیم. در این صفحه ما صرفا تمام بوردها را از دیتابیس گرفته و در HTML لیست می کنیم. boards/views.py from django.shortcuts import render from .models import Board def …

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