我有这个传统的django代码:
class FooForm(forms.Form):
defaults={
'foo': Foo.objects.get(id='...')
}
Foo.objects.get()
并不懒惰。这意味着在导入python文件期间DB会连接。
这在几个地方都会造成麻烦。
如何重构这个?是否有Foo.objects.get()
的懒惰版本?
答案 0 :(得分:0)
听起来你想在实例化表单时点击数据库。我通常通过覆盖构造函数来做到这一点:
class FooForm(forms.Form):
def __init__(*args, **kwargs):
super(FooForm, self).__init__(*args, **kwargs)
self.defaults = {
'foo': Foo.objects.get(id='...')
}