Django Class Based Views (CBVs) are an important part of using Django effectively. CBVs help us eliminate redundant code across our entire application and stay DRY while using CRUD and CRUD-like views.
Here's a basic example:
def my_home_view(request):
return render(request, 'home.html', {})
Becomes
class MyHomeView(View):
def get(self, request, *args, **kwargs):
return render(request, 'home.html', {})
my_home_view = MyHomeView.as_view()
This, of course, isn't ground breaking. How about a detail view? or a List view?
class SomeModelListView(ListView):
model = SomeModel
class SomeModelDetailView(DetailView):
model = SomeModel
These two classes provide us a default template, a default lookup (for a QuerySet or object lookup), and default template context. These defaults can be reused for any model in your project.
This series will explore all of above and much more.
- Any Try Django series