Вот уже не за горами выход Django 1.3, а желающие уже могут попробовать его на вкус (на 06.03.11 доступен RC1). Что же он нам несет? Многое, обо всем не буду рассказывать. А остановлюсь на class-based views.
Думаю, что многие полюбили generic views (такие, как direct_to_template, object_list, object_details). В версии 1.4 они станут deprecated. Нет, они не исчезнут, а превратятся в class-based. Так что уже пора переучиваться.
Не буду разглагольствовать, на это нет сейчас времени. А просто дам совет в виде кода:
class SecureView(View):
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(SecureView, self).dispatch(*args, **kwargs)
class ModifyArticle(FormView, SecureView):
template_name = 'blog/edit_article.html'
context_object_name = 'article'
model = blog.models.Article
form_class = blog.forms.ArticleForm
success_url = '/blog/article/%(pk)d/'
class AddArticle(ModifyArticle, CreateView):
pass
class EditArticle(ModifyArticle, UpdateView):
pass
В подробностях - еще пару советов