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
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگو شرکت کنید؟نظری بدهید!