我正在尝试使用cassandra作为我的数据库。我将auth_user表移动到了cassandra。我创建了一个自定义后端类,并将自己的实现编写到以下方法中:
def authenticate(...)
def get_group_permissions()
def has_perm()
以及django docs中定义的更多方法。
现在我可以添加新用户和身份验证工作,但是django尝试更新上次登录datetime字段。现在它抛出错误,因为sql数据库中没有记录。
如果我在django / admin / auth / models.py文件中注释掉以下行(第31行)
user.save(update_fields=['last_login'])
一切正常。
我需要知道一种简单的方法来覆盖此update_last_login - > user.save方法。 我用django 1.5.2版本 感谢
更新 我通过在自定义BACKEND类中断开信号来获得解决方案:
from django.contrib.auth.models import update_last_login
from django.contrib.auth.signals import user_logged_in
...
user_logged_in.disconnect(update_last_login)