如果使用 `rest-auth` 用户登录时如何添加 last_login_ip?
How to add the last_login_ip, when the user login if using `rest-auth`?
如何在用户使用rest-auth
登录时添加last_login_ip?
在询问 post 之前,我在下面搜索了一个 post:
答案非常适合自定义验证登录参数。
但是,登录后,给用户添加属性怎么样?
我的意思是,答案只是为了验证数据,我想在用户登录成功后,我想将last_login_ip
添加到用户实例中。
编辑
请注意,我知道如何获取访问我站点的远程IP。我的意思是我使用 rest-auth
登录,并像 link 一样自定义了 LoginSerializer。 link是为了验证登录数据,我不能更改LoginSerializer
中的last_login_ip
数据,我想当用户登录成功后,再更改用户的last_login_ip
.但是在哪里写我的更改 last_login_ip 代码?
EDIT-2
我听从了@at14 的建议,在init.py(与apps.py
处于同一水平):
default_app_config = '管理员后台.用户管理.qiyun_admin_usermanage.apps.QiyunAdminUsermanageConfig'
并在 apps.py
中:
from django.apps import AppConfig
class QiyunAdminUsermanageConfig(AppConfig):
name = 'qiyun_admin_usermanage'
def ready(self):
import 管理员后台.用户管理.qiyun_admin_usermanage.api.signals
会出现如下错误:
django.core.exceptions.ImproperlyConfigured: Cannot import 'qiyun_admin_usermanage'. Check that '管理员后台.用户管理.qiyun_admin_usermanage.apps.QiyunAdminUsermanageConfig.name' is correct.
我也尝试在init.py
中评论default_app_config = '管理员后台.用户管理.qiyun_admin_usermanage.apps.QiyunAdminUsermanageConfig'
,但还是不行。
使用 django 的用户登录信号将此信息保存到数据库中。
在signals.py,
from django.contrib.auth.signals import user_logged_in
from django.dispatch import receiver
@receiver(user_logged_in)
def user_logged_in_callback(sender, user, request, **kwargs):
// Get the IP Address and save it
阅读有关信号的更多信息here。
请注意如何在您的应用就绪方法中导入信号
在您的应用程序目录中创建一个 apps.py(它可能已经存在),
from django.apps import AppConfig
class YourAppConfig(AppConfig):
name = '管理员后台.用户管理.qiyun_admin_usermanage'
def ready(self):
import 管理员后台.用户管理.qiyun_admin_usermanage.api.signals # noqa
在您的应用程序 init.py 文件中,
default_app_config = '管理员后台.用户管理.qiyun_admin_usermanage.apps.QiyunAdminUsermanageConfig'
如何在用户使用rest-auth
登录时添加last_login_ip?
在询问 post 之前,我在下面搜索了一个 post:
答案非常适合自定义验证登录参数。
但是,登录后,给用户添加属性怎么样?
我的意思是,答案只是为了验证数据,我想在用户登录成功后,我想将last_login_ip
添加到用户实例中。
编辑
请注意,我知道如何获取访问我站点的远程IP。我的意思是我使用 rest-auth
登录,并像 link 一样自定义了 LoginSerializer。 link是为了验证登录数据,我不能更改LoginSerializer
中的last_login_ip
数据,我想当用户登录成功后,再更改用户的last_login_ip
.但是在哪里写我的更改 last_login_ip 代码?
EDIT-2
我听从了@at14 的建议,在init.py(与apps.py
处于同一水平):
default_app_config = '管理员后台.用户管理.qiyun_admin_usermanage.apps.QiyunAdminUsermanageConfig'
并在 apps.py
中:
from django.apps import AppConfig
class QiyunAdminUsermanageConfig(AppConfig):
name = 'qiyun_admin_usermanage'
def ready(self):
import 管理员后台.用户管理.qiyun_admin_usermanage.api.signals
会出现如下错误:
django.core.exceptions.ImproperlyConfigured: Cannot import 'qiyun_admin_usermanage'. Check that '管理员后台.用户管理.qiyun_admin_usermanage.apps.QiyunAdminUsermanageConfig.name' is correct.
我也尝试在init.py
中评论default_app_config = '管理员后台.用户管理.qiyun_admin_usermanage.apps.QiyunAdminUsermanageConfig'
,但还是不行。
使用 django 的用户登录信号将此信息保存到数据库中。
在signals.py,
from django.contrib.auth.signals import user_logged_in
from django.dispatch import receiver
@receiver(user_logged_in)
def user_logged_in_callback(sender, user, request, **kwargs):
// Get the IP Address and save it
阅读有关信号的更多信息here。 请注意如何在您的应用就绪方法中导入信号
在您的应用程序目录中创建一个 apps.py(它可能已经存在),
from django.apps import AppConfig
class YourAppConfig(AppConfig):
name = '管理员后台.用户管理.qiyun_admin_usermanage'
def ready(self):
import 管理员后台.用户管理.qiyun_admin_usermanage.api.signals # noqa
在您的应用程序 init.py 文件中,
default_app_config = '管理员后台.用户管理.qiyun_admin_usermanage.apps.QiyunAdminUsermanageConfig'