簡體   English   中英

Django 模型使用來自另一個模型的文本選擇

[英]Django Model Use Text Choices From Another Model

在我的 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 = ???

您可以重用Day模型中的Weekdays ,包括:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM