Django Choice Fields - 在模型中添加選擇欄位 | Django

Django 模型中,有時候我們需要限制某一個字段的值,只允許它在一組特定的選項中取值。這時, DjangoChoice Fields 就派上用場了。

步驟 1:創建一個新的 Django 專案

首先,確保你已經建立了一個 Django 項目和一個應用程序。如果還沒有,你可以參考上一篇文章 創建模型(Models) | Django

步驟 2:定義帶有 Choice Fields 的模型

假設我們正在建立一個簡單的blog應用程式,現在我們想要為文章添加一個 “狀態” 字段,該字段只能是 “草稿”、“已發布” 或 “下架” 這三種狀態之一。我們可以使用 DjangoChoice Fields 來實現這一點。

打開 “posts/models.py” 文件,修改 Post 模型:

from django.db import models

class Post(models.Model):
    STATUS_CHOICES = [
        ('draft', '草稿'),
        ('published', '已發布'),
        ('archived', '下架'),
    ]

    title = models.CharField(max_length=200)
    content = models.TextField()
    status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='draft')
    pub_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

在這個例子中,我們新增了一個 STATUS_CHOICES 列表,其中包含了每個狀態的選項,每個選項都是一個包含兩個元素的元組。接著,我們在 Post 模型中的 status 字段上使用了 choices 參數,將其限制為 STATUS_CHOICES 中的選項。

步驟 3:遷移並更新資料庫

執行以下命令應用遷移:

python manage.py makemigrations
python manage.py migrate

這會將我們對模型的更改應用到資料庫中。

步驟 4:使用 Choice Fields

現在,你可以在創建或編輯文章時選擇文章的狀態。這將為使用者提供一個下拉菜單,僅顯示我們在 STATUS_CHOICES 中定義的選項。

這樣一來,你就成功地在 Django 模型中使用了 Choice Fields ,為你的應用程序提供了更多的數據約束和選擇性。這對於確保數據的一致性和有效性非常有用。

希望這個示例有助於你更好地理解 Django 中的 Choice Fields ,並在你的項目中有效地應用它。