我有一个django网站,
1.我需要创建一些员工用户来登录和访问/查看模型。
2.但同时我想跟踪员工甚至管理员的登录位置。
3.我有任何适当的django模块或第三方API来执行此操作。
答案 0 :(得分:1)
您可以使用一些中间件和GIS contrib app来执行此操作,该应用程序为geoip lookups提供了包装。
创建一个简单的表来记录您的额外细节,然后使用以下内容:
from django.contrib.gis.utils import GeoIP
from logger.models import Log # your simple Log model
def get_ip(request):
xff = request.META.get('HTTP_X_FORWARDED_FOR')
if xff:
return xff.split(',')[0]
return request.META.get('REMOTE_ADDR')
class UserLocationLoggerMiddleware(object):
def process_request(self, request):
if request.user and request.user.is_superuser:
# Only log requests for superusers,
# you can control this by adding a setting
# to track other user types
ip = get_ip(request)
g = GeoIP()
lat,long = g.lat_lon(ip)
Log.objects.create(request.user, ip, lat, long)
请参阅middleware documentation,了解如何设置和配置自定义中间件。