2011-08-12 53 views
4

有一個這樣的模型,我想確保每張專輯只有一張照片有封面。這將用作專輯模型的InlineModelAdmin。Django:只允許一個布爾字段爲真

class Photo(models.Model): 
    is_cover = models.BooleanField(default=False) 
    album = models.ForeignKey('Album') 
    image = ImageField(upload_to='uploads') 

這怎麼能實現?

回答

5

哪張照片在專輯封面上應該是這張專輯的屬性,而不是照片。

而不是在您的照片中使用布爾屬性,使用您的相冊中的照片的引用。

對評論的回覆:假設「內聯模型」意味着我認爲在我的評論中,您可能必須提供自己的add form template。使用它,您仍然可以提供選項框(而不是複選框),然後在處理提交表單內容的代碼中正確設置Album

+0

但這種方式我如何讓用戶在創建初始實例時選擇封面照片?照片是專輯的內聯模型。 – Hellnar

+0

@Hellnar:我不確定我是否正確理解術語「內聯模型」(我從來沒有使用django)。您的意思是,當您在管理頁面上創建相冊時,同一頁面還允許您將照片添加到相冊中? – blubb

+0

確切地說,在這種情況下,這是一個問題 – Hellnar