Django在数据库中匹配IP

时间:2014-08-31 21:52:37

标签: python django django-models ip-address

我正在尝试检查用户的IP是否在我拥有的模型对象中。我在数据库中添加了我的IP,但是没有让我的代码做出相应的响应:

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

1 个答案:

答案 0 :(得分:2)

您将字符串与模型实例列表进行比较。它永远不会匹配。

您无论如何都不想获取IgnoredIPs的整个表格来检查单个表格。而是查询该精确值:

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