Generic Class-Based View

سلام

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

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

views.py

from django.views.generic import CreateView

class NewPostView(CreateView):
    model = Post
    form_class = PostForm
    success_url = reverse_lazy('post_list')
    template_name = 'new_post.html'

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

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

urls.py

urlpatterns = [
    url(r'^new_post/$', views.NewPostView.as_view(), name='new_post'),
]

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

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

 

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

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

بدون دیدگاه

دیدگاهتان را بنویسید

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

جنگو
پیکربندی گواهینامۀ https

سلام حالا می خواهیم برنامۀ خودمان را با گواهینامۀ https امن کنیم. ساده ترین کار برای انجام آن Let’s Encrypt است. قبل از Let’s Encrypt هرگز تنظیمات https به این راحتی نبوده و مهمتر اینکه اینکار کاملاً رایگان است. آن ها راه حلی به نام certbot را ارائه داده اند …

جنگو
پیکربندی سرویس ایمیل

سلام یکی از بهتر سرویس دهنده های ایمیل Mailgun با قابلیت ۱۲ هزار ایمیل رایگان در ماه است. به صورت رایگان ثبت نام کنید. برای اینکار باید آن را با سرویس دهندۀ دامین خود تنظیم کنید که در این آموزش از tamadon.org استفاده شده است. حالا اولین رکورد DNS را …

جنگو
پیکربندی NGINX

سلام کار بعدی که قرار است انجام شود؛ تنظیمان Nginx به شکلی است که پاسخگویی و سرویس دهی مربوط به فایل های استاتیک را خود انجام دهد و سایر درخواست ها را به Gunicorn بفرستد. یک فایل پیکربندی با نام boards را درون /etc/nginx/sites-available/ و با محتوای زیر اضافه می …

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