cuốn sách gpt4 ai đã làm

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

In lại Tác giả: Vũ trụ không gian 更新时间:2023-11-03 20:32:45 27 4
mua khóa gpt4 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)

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

câu trả lời hay nhất

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

class DayOfWeek(models.Model):
name = models.CharField(max_length=20)

chắc chắn __str__(tự):
return self.name

class Car(models.Model):
days = models.ManyToManyField(DayOfWeek)

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

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.IntegerField()

然后您可以将其编码为:

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

编码周一和周五有车。

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

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress