如何使用是/否字段制作模型,如果是,则将使用特定对象(图像)作为背景,并且不会选择其他图像。
我来这个模型:
class BackgroundImage(models.Model):
user = models.ForeignKey(user)
caption = models.CharField(max_length=200)
image = models.ImageField(upload_to=get_upload_file_name)
using_image = models.BooleanField()
但有了这个,我可以选择所有这些,而不仅仅是一个。
修改
让我们举一个个人资料图片的例子。用户可以拥有许多图像,但他只能选择一个作为个人资料图片。所以,如果他选择一个,其他人将取消选择。希望大家明白我的意思。如果不明白,请问我。如果我的模型不正确,请纠正我。谢谢!
答案 0 :(得分:1)
您可以添加save()
挂钩,以确保给定用户没有其他BackgroundImage
具有该标志。 (另外,出于性能原因,您希望该列为db_index=True
。)
def save(self, *args, **kwargs):
if self.use_image:
BackgroundImage.objects.filter(user=self.user).update(use_image=False)
super(BackgroundImage, self).save(*args, **kwargs)