python - Django 模型使用来自另一个模型的文本选择
问题描述
在我的 Django 模型中,我想使用来自另一个模型的文本选择,但我不想将它用作外键,因为我想要在任何 Day 对象存在之前的整个工作日列表。
如果我使用它作为外键,我需要先创建 Day 对象。
任何人都可以帮助解决这个问题吗?
class Day(models.Model):
class Weekdays(models.TextChoices):
MONDAY = "Monday"
TUESDAY = "Tuesday"
WEDNESDAY = "Wednesday"
THURSDAY = "Thursday"
FRIDAY = "Friday"
SATURDAY = "Saturday"
SUNDAY = "Sunday"
store = models.ForeignKey(Store, on_delete=models.DO_NOTHING)
weekday = models.CharField(max_length=9, choices=Weekdays.choices)
class School(models.Model):
weekday = ???
解决方案
Weekdays
您可以通过以下方式重用Day
模型中的:
class Day(models.Model):
# …
pass
class School(models.Model):
weekday = models.CharField(max_length=9, choices=Day.Weekdays.choices)
由于选择并不真正“属于”这两个模型中的任何一个,因此在两个类之外定义它们可能更有意义,因此:
class Weekdays(models.TextChoices):
MONDAY = "Monday"
TUESDAY = "Tuesday"
WEDNESDAY = "Wednesday"
THURSDAY = "Thursday"
FRIDAY = "Friday"
SATURDAY = "Saturday"
SUNDAY = "Sunday"
class Day(models.Model):
store = models.ForeignKey(Store, on_delete=models.DO_NOTHING)
weekday = models.CharField(max_length=9, choices=Weekdays.choices)
class School(models.Model):
weekday = models.CharField(max_length=9, choices=Weekdays.choices)
推荐阅读
- javascript - 如何使用按钮 Bootstrap Accordion 更改(-,+)符号?
- webgl - 带有 mipmap 级别的 webgl2 上的 glFramebufferTexture2D
- spring - 登录后如何在spring boot auth2 facebook中重定向到特定的uri
- javascript - 在二维数组中查找数组的索引?
- php - PHP在连接时删除正斜杠
- python - 比较列表中的两个列表,如果列表 b index[x] 在 a 中做某事
- dart - 如果没有立即完成等待,Dart File.writeAsString() 方法不会写入文件
- r - 名称与列表名称相同的字符向量
- java - JavaFx 在邮件中将临时 excel 文件作为附件发送
- php - 如何从传入的 JSON 数据生成表 [Laravel, Ajax]