假设我知道数据库中存在一行 django 模型的一些字段,但没有将它们封装在模型实例中。有没有什么简单的方法可以让我将它们包装在模型实例中,而无需进行额外的数据库查询,并以填充了这些字段但所有其他字段都被推迟的实例结束?所以说我有模型:from django.db.models import CharField, IntegerField, Modelclass 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因为这是场上的默认值,但这可能不是爱丽丝的实际年龄。有任何想法吗?
1 回答

神不在的星期二
TA贡献1963条经验 获得超6个赞
分配django.db.models.DEFERRED
给您要延迟的字段,即:
alice = Model(id=3, name='Alice', age=django.db.models.DEFERRED)
请注意,这仅适用于实例化,DEFFERED
创建模型后无法分配。
你显然不能推迟主键。
添加回答
举报
0/150
提交
取消