Доброго дня, я новичок в django и столкнулся с такой тривиальной проблемой, я пытаюсь реализовать функционал голосования по ip адресам, т.е. что-бы с одного ip можно было проголосовать 1 раз в одной номинации. Но у меня не выходит правильно построить выборку.
View:
def post(self, request, pk, pk2):
client_ip, is_routable = get_client_ip(request)
nomination = NominationsModel.objects.get(id=pk2)
member = MemberModel.objects.get(id=pk)
chek = CheckModel.objects.order_by('ip')
print(chek)
if client_ip not in chek:
ip_save = CheckModel.objects.create(ip=client_ip, nominations=nomination)
member.check += 1
ip_save.save()
member.save()
return redirect('/competition/nominations/{}'.format(nomination.id))
Model:
class NominationsModel(models.Model):
"""Номинации"""
name = models.CharField('Название номинации', max_length=500)
def get_absolute_url(self):
return reverse('detailnominations', kwargs={'pk': self.id})
def __str__(self):
return self.name
def get_all(self):
return MemberModel.objects.filter(parent=self)
class Meta:
verbose_name = 'Номинацию'
verbose_name_plural = 'Номинаиции'
class CheckModel(models.Model):
ip = models.CharField('ip', max_length=100, blank=True, null=True)
nominations = models.ForeignKey(NominationsModel, on_delete=models.CASCADE, blank=True, null=True)
На данный момент голосовать можно сколь угодно раз.