首页 > 解决方案 > Django 管理员在尝试登录管理站点时调用 ```.save()``` 方法

问题描述

auth 用户模型扩展AbstractUser并覆盖了该.save()方法。该模型包含两个必填字段和唯一字段。它还调用.full_clean().save()方法。当管理员尝试登录时会出现问题。Django 抛出一个验证错误,指出这两个字段不能为空。.full_clean()注释掉时错误消失。

为什么 Django 管理员.save()在尝试登录管理站点时调用该方法?

标签: djangovalidationauthenticationadminvalidationerror

解决方案


虽然这不能直接回答问题,但它提供了一个解决方案。

对于任何有兴趣的人,一种可能的解决方法是.full_clean()这样调用:

if not self.is_superuser: 
    self.full_clean()

推荐阅读