听James Bennett:阅读实用的Django项目,跟随
http://b-list.org/
. 在youtube上搜索他关于可重用应用程序的djangocon谈话。读他的代码(在比特桶上)。
我从他那里得到了一个建议:对视图的依赖注入将使你的应用程序更加可重用。一个具体的例子重构这个特定于情况的视图:
def user_login_view(request):
context = {
'login_form': forms.LoginForm
}
return render_to_response('accounts/login.html', context)
def user_login_view(request, form=models.LoginForm, template_name='accounts/login.html'):
context = {
'login_form': form,
}
return render_to_response(template_name, context)
更好的方法是,给你的视图起一个类似“form_view”的通用名,将你的表单重命名为“form”而不是“login_form”,并明确地传递你的参数。但是这些改变改变了功能,因此不是一个纯粹的重构。一旦你重构了,你就可以开始增量地改变其他事情。