2014-04-23 94 views
0

比方說,我創建了一個模型AnObject,其中一個字段將是shape。如果我有3套形狀類型,模型可能是圓形,方形,三角形。寫出模型的最佳方式是什麼?讓我們假設這些形狀不是模型(因此這裏不應該使用外鍵字段),它們只是形狀類型。Django/Python模型 - 多字段選項

class AnObject(models.Model): 
    shape = ? 

回答

1

正確的方法是對特定字段使用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) 
+0

謝謝你,我想這是類似的東西。現在只有兩種選擇,這是最佳做法嗎?或者我應該使用一個布爾值,並命名一個真正的,並命名其他假? – ApathyBear

+1

這可能是個人喜好的問題,但我想我仍然會使用'CharField'列出選項。如果您決定添加第三個選項,它將使其在未來更容易擴展。話雖如此,如果您知道以後不會添加其他選項並且存在明確的默認值,那麼您可以使用布爾值,直到您合理地問「您的對象是否爲圓圈?」。與'是/否'字段。 – Alex