Python 基于其他模型中的另一个值在模型字段中设置一个值

Python 基于其他模型中的另一个值在模型字段中设置一个值,python,django,python-3.x,django-models,Python,Django,Python 3.x,Django Models,我有两个模型,其中一个与其他实体有外键关系。问题是ModelB的data\u start字段中的日期需要不等于ModelA的date\u end中的日期。如何在ModelB中执行此比较(规则)并保存它 class ModelB(models.Model): date_start = models.DateTimeField('') date_end = models.DateTimeField('') class ModelA(models.Model): name =

我有两个模型,其中一个与其他实体有外键关系。问题是ModelB的
data\u start
字段中的日期需要不等于ModelA的
date\u end
中的日期。如何在ModelB中执行此比较(规则)并保存它

class ModelB(models.Model):
    date_start = models.DateTimeField('')
    date_end = models.DateTimeField('')

class ModelA(models.Model):
    name = models.CharField(...)
    date_start = models.DateTimeField('')
    date_end = models.DateTimeField('')
    resource = models.ForeignKey(ModelB,...)

我认为从
ModelA
检查此条件更为正确,因为在您的结构中,一个
ModelB
实例可能有多个
ModelA
实例,在这种情况下,不清楚与
ModelA
的哪个变体比较日期

因此,请检查
ModelA
,并检查那里的条件

class ModelA(models.Model):
    name = models.CharField(...)
    date_start = models.DateTimeField('')
    date_end = models.DateTimeField('')
    resource = models.ForeignKey(ModelB,...)

    def save(self, *args, **kwargs):
        if self.date_end <= self.resource.date_start:
            raise Exception("resource.date_start can't be equal or grater then date_end")
        super().save(*args, **kwargs)
类ModelA(models.Model):
name=models.CharField(…)
date_start=models.DateTimeField(“”)
date\u end=models.DateTimeField(“”)
资源=模型。外键(模型B,…)
def保存(自身、*args、**kwargs):

如果self.date\end在modelA中这样做有意义,因为我在下面的流程中思考:用户通过表单创建modelA的实例,因此当用户从modelA中选择日期时,它将从modelB中选择一个日期,那么何时保存比较将发生