Generic Class-Based View

سلام

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

کار با GCBVها شاید در ابتدا کمی سخت به نظر بیاید. به خصوص اینکه پیاده سازی های آن بسیار پیچیده و تو در تو بوده و بعضاً یک کلاس با ۸ کلاس والد مختلف در ارتباط بوده و این در حالی است که مستندات کمی هم در مورد آن ها تولید شده. در زمان کار با 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

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگو شرکت کنید؟
نظری بدهید!

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

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