0
比方說,我創建了一個模型AnObject
,其中一個字段將是shape
。如果我有3套形狀類型,模型可能是圓形,方形,三角形。寫出模型的最佳方式是什麼?讓我們假設這些形狀不是模型(因此這裏不應該使用外鍵字段),它們只是形狀類型。Django/Python模型 - 多字段選項
class AnObject(models.Model):
shape = ?
比方說,我創建了一個模型AnObject
,其中一個字段將是shape
。如果我有3套形狀類型,模型可能是圓形,方形,三角形。寫出模型的最佳方式是什麼?讓我們假設這些形狀不是模型(因此這裏不應該使用外鍵字段),它們只是形狀類型。Django/Python模型 - 多字段選項
class AnObject(models.Model):
shape = ?
正確的方法是對特定字段使用choices
參數。文檔here
這樣:
class AnObject(models.Models)
SHAPE_CHOICES = (
(CIRCLE, 'Circle'),
(TRIANGLE, 'Triangle'),
(SQUARE, 'Square'),
)
shape = models.CharField(max_length=8,
choices=SHAPE_CHOICES,
default=CIRCLE)
謝謝你,我想這是類似的東西。現在只有兩種選擇,這是最佳做法嗎?或者我應該使用一個布爾值,並命名一個真正的,並命名其他假? – ApathyBear
這可能是個人喜好的問題,但我想我仍然會使用'CharField'列出選項。如果您決定添加第三個選項,它將使其在未來更容易擴展。話雖如此,如果您知道以後不會添加其他選項並且存在明確的默認值,那麼您可以使用布爾值,直到您合理地問「您的對象是否爲圓圈?」。與'是/否'字段。 – Alex