Django:只允许一个booleanfield为True

时间:2011-08-12 20:54:27

标签: python django

拥有这样的模特,我想确保每张专辑中只有一张照片有封面。这将用作相册模型的InlineModelAdmin。

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

如何实现这一目标?

1 个答案:

答案 0 :(得分:5)

相册封面上的哪张照片应该是相册的属性,而非照片。

不要在照片中使用布尔属性,而是在相册中使用对照片的引用。

回答评论:假设'内联模型'意味着我在评论中的意思,您可能需要提供自己的add form template。使用它,您仍然可以提供选项框(而不是复选框),然后在处理提交表单内容的代码中正确设置Album