关于python:Django。

Django. Comparing the model fields before saving for the admin panel

我刚到Django,我有一个问题(是的,是的,我在找,没有找到…)。有两种型号:

1
2
3
4
class CounterDetail(models.Model):
counter = models.ForeignKey(Counter, on_delete=models.CASCADE)
date_placing = models.DateField(auto_now=False, auto_now_add=False, blank=False, null=False)
verifying_period_mounts = models.IntegerField(blank=False, null=False)

1
2
3
4
class Detail(models.Model):
counterdetail = models.ForeignKey(CounterDetail, on_delete=models.CASCADE)
date_last_verification = models.DateField(auto_now=False, auto_now_add=False, blank=False, null=False)
date_obxoda = models.DateField(auto_now=False, auto_now_add=False, blank=False, null=False)

如何在通过管理面板向第二个模型添加条目时执行检查:字段date_obxoda = models.DateField(auto_now=False, auto_now_add=False, blank=False, null=False)更多,然后日期放置=模型。来自另一个模型的日期字段(auto_now=false,auto_now_add=false,blank=false,null=false)。

在通过管理面板添加记录时,我正在寻找一个方法(最好是作为模型中的重写保存()方法),以验证来自第二个模型(带有外键)的日期是否大于第一个。

请举个例子,谢谢。


您可以覆盖细节模型保存方法,例如

1
2
3
4
def save(self, *args, **kwargs):
    super(Detail, self).save(*args, **kwargs)
    if self.date_obxoda > self.counterdetail.date_placing :
        #do_something

如果有帮助请告诉我