【问题标题】:Django Match IP in databaseDjango匹配数据库中的IP
【发布时间】:2014-10-25 03:20:31
【问题描述】:

我正在尝试检查用户的 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

模型.py

from django.db import models

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

    def __unicode__(self):
    return self.ip

【问题讨论】:

    标签: python django django-models ip-address


    【解决方案1】:

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

    无论如何,您都不想获取整个 IgnoredIP 表来检查一个。相反,查询该精确值:

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

    【讨论】:

      猜你喜欢
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 2022-08-12
      • 2021-02-11
      • 1970-01-01
      相关资源
      最近更新 更多