2012-08-12 57 views
-1

我非常抱歉爲這個問題的標題。我無法想象如何在簡單的情況下對其進行描述。Django模型變量 - 唯一


我正在製作一個簡單的照片庫。管理員可以創建一個圖庫頁面並上傳圖像。對於每個畫廊我都希望從其中一張照片中獲得單幅橫幅圖像。照片模型有一個CharField,它會告訴它是否有橫幅廣告。有沒有辦法讓變量只允許一個'B'爲屬於圖庫的每張照片?

回答

1

你應該爲你的班級定義一個unique_together變量。如果您的字段名稱爲albumbanner,則應將此行添加到模型的Meta類中。

unique_together = (("album", "banner"),) 

Django Documents, unique-together

,我認爲,使用charfield一個布爾值不是一個正確的選擇。您應該將您的banner字段更改爲BooleanField。

+0

謝謝。這可能正是我需要的。在旁註中,charfield將支持更多選項,但對於我的問題沒有必要。我只需要確保每個項目只有一個橫幅。 – 2012-08-12 02:41:22

0

爲什麼不創建OneToOne字段?

class Gallery(models.Model): 
... 
banner = models.OneToOneField(Photo) 

這種方式,你有一個畫廊和照片之間的獨特關係。