gpt4 book ai didi

python - 限制外键数量,每个外键指一周中的某一天

转载 作者:太空宇宙 更新时间:2023-11-03 20:32:45 27 4
gpt4 key购买 nike

假设我的应用中有两个模型:Car 和 CarAvailability。

class Car(Model):
availability = ForeignKey(CarAvailability)
class CarAvailability(Model):
WEEKDAYS = (
('monday', 'Monday'),
('tuesday', 'Tuesday'),
('wednesday', 'Wednesday')
# ... basically all the days of the week
)
day = CharField(max_length=20, choices=WEEKDAYS)

我可以选择哪些选项来将外键数量(可用性 属性)限制为最多 7 个,并确保每个工作日只有一个。我不知道我在这里说得是否足够清楚,如果有的话请告诉我。

最佳答案

我认为您可以通过使用两个模型 CarDayOfWeek 来改进建模,并将其建模为 ManyToManyField:

class <b>DayOfWeek</b>(models.Model):
name = models.CharField(max_length=20)

def __str__(self):
return self.name

class Car(models.Model):
days = models.<b>ManyToManyField(DayOfWeek)</b>

另一种建模可能是使用整数,并将其编码为“位串”:

from enum import IntFlag

class Day(IntFlag):
MONDAY = 1
TUEDAY = 2
WEDNESDAY = 4
THURSDAY = 8
FRIDAY = 16
SATURDAY = 32
SUNDAY = 64
class Car(models.Model):
days = models.<b>IntegerField()</b>

然后您可以将其编码为:

Car.object.create(days=Day.MONDAY|Day.FRIDAY)

编码周一和周五有车。

关于python - 限制外键数量,每个外键指一周中的某一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57379842/

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