我想要一个模型字段,它将返回另一个模型的最新相关信息。
一个例子-
class Thing(models.Model):
name = models.CharField(max_length=200)
state = models.ForeignKey(State, query=latest) #pure fantasy
class State(models.Model):
change = models.DateTimeField(auto_now_add=True)
thing = models.ForeignKey(Thing)
假设模型类 State 与 Thing 具有多对一的关系。
given- some_thing = Thing.object.all()[0]
我希望 some_thing.state 成为 State 的实例,它具有我手头的实例 Thing 的最新 State.change 值。
我想在 Django 模型级别指定一个实例变量来执行我上面描述的操作。我可以想到两种方法来做到这一点,但都不是这个级别:
- 在实际的数据库级别——创建一个视图并关闭 django 数据库同步(http://stackoverflow.com/questions/507795/can-i-use-a-database-view-as-a-model-in-django )
- 视图级别——当我创建新的 State 行时,手动将该行设置为相关的 Thing.state 实例。