Unique BooleanField value in Django?

前端 未结 13 845
清酒与你
清酒与你 2020-12-07 14:11

Suppose my models.py is like so:

class Character(models.Model):
    name = models.CharField(max_length=255)
    is_the_chosen_one = models.BooleanField()
         


        
13条回答
  •  庸人自扰
    2020-12-07 14:36

    2020 update to make things less complicated for beginners:

    class Character(models.Model):
        name = models.CharField(max_length=255)
        is_the_chosen_one = models.BooleanField(blank=False, null=False, default=False)
    
        def save(self):
             if self.is_the_chosen_one == True:
                  items = Character.objects.filter(is_the_chosen_one = True)
                  for x in items:
                       x.is_the_chosen_one = False
                       x.save()
             super().save()
    

    Of course, if you want the unique boolean to be False, you would just swap every instance of True with False and vice versa.

提交回复
热议问题