告诉我如何正确进行检查,我需要检查数据库中是否存在这样的一对(ip和user_agent),如果没有,则添加
视图.py
def all(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
user_agent = request.META.get('HTTP_USER_AGENT')
name_host = request.META.get('SERVER_PORT')
method = request.META.get('REQUEST_METHOD')
data = {"ip": ip,"user_agent": user_agent,"name_host": name_host,"method": method }
return render(request, 'poll/all.html', context=data)
模型.py
class Unique_set(models.Model):
UserAgent = models.TextField()
IP_user = models.CharField(max_length=50)
def __str__(self):
return self.IP_user
为了测试是否存在,以下条件可能是合适的:
要创建对象,请使用以下语句:
UPD:
最佳解决方案是使用以下方法
get_or_create:将返回一个元组,其中 2 元素 (index
1) 指示对象是已创建还是已存在。这在任何情况下都可能派上用场。