/ / Django Match IP no banco de dados - python, django, django-models, ip-address

Django Match IP no banco de dados - python, django, django-models, ip-address

Eu estou tentando verificar se o IP do usuário está em um objeto de modelo que eu tenho. Eu adicionei meu IP no banco de dados, mas não estou recebendo meu código para responder adequadamente:

views.py

def view(request):
try:
ip = request.META["HTTP_X_FORWARDED_FOR"]
except:
ip = request.META["REMOTE_ADDR"]

ignored_ips = IgnoredIP.objects.all()
if str(ip) in ignored_ips:
Ignore = True

Models.py

from django.db import models

class IgnoredIP(models.Model):
ip = models.IPAddressField()

def __unicode__(self):
return self.ip

Respostas:

2 para resposta № 1

Você está comparando uma string com uma lista de instâncias do modelo. Ela nunca será igual.

Você não quer buscar a tabela inteira de IgnoredIPs de qualquer maneira apenas para verificar uma única. Em vez disso, consulte o valor exato:

if IgnoredIP.objects.filter(ip=ip).exists():