Very nice snippets, though they're meant to work only with Django's default class views.
A few months ago I started using a small class-based views library called aino-utkik[1] and haven't looked back.
Instead of this:
class ArtistLogin(FormView):
form_class = ArtistLoginForm
template_name = 'artists/artist_login.html'
def get(self, request, *args, **kwargs):
request.session.set_test_cookie()
return super(ArtistLogin, self).get(request, *args, **kwargs)
def form_valid(self, form):
login(self.request, form.artist)
return HttpResponseRedirect(reverse('artist_mypage'))
def get_form_kwargs(self):
kwargs = super(ArtistLogin, self).get_form_kwargs()
kwargs['request'] = self.request
return kwargs
I can write this: class ArtistLogin(View):
def setup(self):
self.c.form = ArtistLoginForm(
request=self.request, data=self.request.POST or None)
def get(self):
self.request.session.set_test_cookie()
def post(self):
if self.c.form.is_valid():
login(self.request, self.c.form.artist)
return HttpResponseRedirect(reverse('artist_mypage'))
which I find way more elegant.