Django 管理员在尝试登录管理站点时调用 ```.save()``` 方法
Django admin calling the ```.save()``` method when trying to log in to the admin site
auth 用户模型扩展了 AbstractUser
并覆盖了 .save()
方法。该模型包含两个必填字段和唯一字段。它还在 .save()
方法中调用 .full_clean()
。当管理员尝试登录时,问题就出现了。Django 抛出一个验证错误,指出这两个字段不能为空。当 .full_clean()
被注释掉时错误消失。
为什么 Django 管理员在尝试登录管理站点时调用 .save()
方法?
我希望调用 .save()
来为用户存储 last_login
字段。这也是 运行 验证的原因。
虽然这不能直接回答问题,但它提供了解决方案。
对于任何感兴趣的人,一种可能的解决方法是像这样调用 .full_clean()
:
if not self.is_superuser:
self.full_clean()
auth 用户模型扩展了 AbstractUser
并覆盖了 .save()
方法。该模型包含两个必填字段和唯一字段。它还在 .save()
方法中调用 .full_clean()
。当管理员尝试登录时,问题就出现了。Django 抛出一个验证错误,指出这两个字段不能为空。当 .full_clean()
被注释掉时错误消失。
为什么 Django 管理员在尝试登录管理站点时调用 .save()
方法?
我希望调用 .save()
来为用户存储 last_login
字段。这也是 运行 验证的原因。
虽然这不能直接回答问题,但它提供了解决方案。
对于任何感兴趣的人,一种可能的解决方法是像这样调用 .full_clean()
:
if not self.is_superuser:
self.full_clean()