我有以下型号:
我有四个主要模型,这些模型没有任何先验关键字段:
class Main1(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
class Main2(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
class Main3(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
class Main4(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
我有以下模型,这些模型取决于Foriengn字段:
Class Related1(models.Model)
name = models.CharField(max_length=200)
main4 = models.ForeignKey(Main4,on_delete=models.CASCADE)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
Class Related2(models.Model)
name = models.CharField(max_length=200)
main3 = models.ForeignKey(Main3,on_delete=models.CASCADE)
related1 = models.ForeignKey(Related1,on_delete=models.CASCADE)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
Class Related3(models.Model)
name = models.CharField(max_length=200)
main2 = models.ForeignKey(Main2,on_delete=models.CASCADE)
related2 = models.ForeignKey(Related2,on_delete=models.CASCADE)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
Class Related4(models.Model)
name = models.CharField(max_length=200)
main1 = models.ForeignKey(Main1,on_delete=models.CASCADE)
related3 = models.ForeignKey(Related3,on_delete=models.CASCADE)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
这里Main1
与Related4
模型有关,但是Related4
还有另一个前移键Related3
,它进一步依赖于其他人
我正在尝试为给定的子弹字段找出与Main1相关的所有模型的修改日期。
我想递归保存所有相关对象的最新更新日期时间,然后将其存储在数据库中。我正在做一些复杂的计算。如果没有数据更改,我不想这样做。为此,我想将最新的数据时间与我存储在数据库中的数据时间进行比较。
Getting the modified date (i.e updated field) of Main1 instance
main1_instance = get_object_or_404(Main1, slug=slug)
main1_instance_modified_date = main1_instance.updated
Getting the latest modified date (i.e updated field) of Main1_Related4 objects
main1_related4_objects = main1_instance.related4_set.all()
main1_related4_objects_latest_change = main1_related4_objects.latest('updated')
但是Related4具有外键Related3,而Related3依赖于Main2和Related2,依此类推
我想获取Main1实例的所有连接对象的所有修改日期(即更新字段)。有什么办法吗?