Python 基于其他模型中的另一个值在模型字段中设置一个值
我有两个模型,其中一个与其他实体有外键关系。问题是ModelB的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 =
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中选择一个日期,那么何时保存比较将发生