0

如何制作带有是/否字段的模型,如果是,则该特定对象(图像)将用作背景,并且不会选择其他图像。

我有这个模型:

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()

但是有了这个,我可以选择所有这些,而不仅仅是一个。

编辑:

让我们以个人资料图片为例。用户可以拥有许多图像,但他只能选择一个作为个人资料图片。所以,如果他选择了一个,其他人将自己取消选择。希望大家明白我的意思。不明白的请问我。如果我的模型不正确,也请纠正我。谢谢!

4

1 回答 1

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)
于 2013-11-03T20:06:33.533 回答