gpt4 book ai didi

python - Django:有什么方法可以得到 "unique for date range"吗?

转载 作者:太空狗 更新时间:2023-10-30 02:23:39 28 4
gpt4 key购买 nike

如果我的 Items 模型是:

class Item(models.Model):
name = models.CharField(max_length=500)
startDate = models.DateField("Start Date", unique="true")
endDate = models.DateField("End Date")

每个 Item 都需要有一个唯一的日期范围。例如,如果我创建一个日期范围为 6 月 1 日至 6 月 8 日的 Item,我如何保留日期范围为 6 月 3 日至 6 月 5 日的 Item从被创建(或使用模板逻辑呈现错误)?

让我知道是否可以更好地澄清这个问题!

最佳答案

您不能在模型级别强制执行此操作,但是您可以重写保存方法以像这样:

class Item(models.Model):
name = models.CharField(max_length=500)
startDate = models.DateField("Start Date", unique="true")
endDate = models.DateField("End Date")

def save(self, *args, **kwargs):
try:
Item.objects.get(Q(startDate__range=(self.startDate,self.endDate))|Q(endDate__range=(self.sartDate,self.endDate))|Q(startDate__lt=self.startDate,endDate__gt=self.endDate))
#raise some save error
except Item.DoesNotExist:
super(Item,self).save(*args,**kwargs)

编辑:也许日期范围检查可以变得更容易,自从我做了很长时间以来,但它显示了一般概念:)。

关于python - Django:有什么方法可以得到 "unique for date range"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2961489/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com