假设我知道数据库中存在一行 django 模型的一些字段,但没有将它们封装在模型实例中。有没有什么简单的方法可以让我将它们包装在模型实例中,而无需进行额外的数据库查询,并以填充了这些字段但所有其他字段都被推迟的实例结束?
所以说我有模型:
from django.db.models import CharField, IntegerField, Model
class Person(Model):
name = CharField(max_length=20)
age = IntegerField(default=10)
我有一本字典:
raw_person = {'id': 3, 'name': 'Alice'}
我想以没有另一个数据库查询的模型实例结束:
alice = Model(id=3, name='Alice', age=<deferred>)
这样做:
alice.name
是即时的,但是
alice.age
将需要对数据库进行另一次查询以获取alice.
显然(?)我不能只做:
alice = Model(id=3, name='Alice')
因为那会被设置,age = 10因为这是场上的默认值,但这可能不是爱丽丝的实际年龄。
有任何想法吗?
神不在的星期二
相关分类