class Poll(models.Model):
question = models.CharField(max_length=200)
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
pub_date = models.DateTimeField(auto_now=True)
expire_date = models.DateTimeField(blank=True, null=True)
slug = models.SlugField(max_length=100)
def _get_unique_slug(self):
slug = slugify(self.question)
unique_slug = slug
num = 1
while Poll.objects.filter(slug=unique_slug).exists():
unique_slug = '{}-{}'.format(slug, num)
num += 1
return unique_slug
def save(self, *args, **kwargs):
self.slug = self._get_unique_slug()
super().save(*args, **kwargs)
def __str__(self):
return self.question
class Meta:
ordering = ('-pub_date',)
class Choices(models.Model):
poll = models.OneToOneField(Poll, related_name='choices')
choice_text = models.CharField(max_length=200)
voter = models.OneToOneField(User, on_delete=models.CASCADE, related_name='voters', blank=True, null=True)
vote_count = models.PositiveIntegerField(default=0)
def __str__(self):
return self.choice_text
def save(self, *args, **kwargs):
self.vote_count += 1
super().save(*args, **kwargs)
class Meta:
pass # order_with_respect_to = 'poll'
Он не позволяет пользователю голосовать более чем за один опрос.и если я изменю его на voter = models.Foriegnkey(User, on_delete=models.CASCADE, related_name='voters', blank=True, null=True)
, он позволяет пользователям голосовать более чем за один вариант в опросе, который не является предполагаемым поведением.Я буду признателен, если не смогу помочь исправить это.Спасибо.