对于这个问题的糟糕标题,我感到非常抱歉。我想不出如何在简单的上下文中表达它。
我正在制作一个简单的照片库。管理员可以创建图库页面并将图像上传到其中。对于每个画廊,我希望其中一张照片中有一个横幅图像。Photo 模型有一个 CharField 可以判断它是否是横幅。有没有办法让变量只允许属于画廊的每张照片有一个“B”?
您应该为您的类定义一个unique_together
变量。如果您的字段名称是album
and banner
,您应该将此行添加到模型的 Meta 类中。
unique_together = (("album", "banner"),)
而且我认为,使用 charfield 作为布尔值并不是一个正确的选择。您应该将您的banner
字段更改为 BooleanField。
为什么不创建一个OneToOne字段?
class Gallery(models.Model):
...
banner = models.OneToOneField(Photo)
这样,您就可以在画廊和照片之间建立独特的关系。