如果这是一个重复的问题,请提前道歉。2尽我所能,我无法找到这个问题。
使用Django 2.0,我用自己的Users模型替换了内置的django.contrib.auth,并使用AbstractUser对其进行了扩展。Users模型依赖于MySQL中的一个现有表,该表被配置为与Django一起使用。Django在执行检查时没有检测到任何问题;但是,我收到了以下错误:
OperationalError at / (1054, "Unknown column 'users.last_login' in 'field list'")
字符串
我将该列添加到表中,以为这将是一个有用的字段,但担心因为我认为我会得到另一个错误的另一个丢失的字段。
OperationalError at / (1054, "Unknown column 'users.is_superuser' in 'field list'")
型
替换用户模型的目的是让我可以丢弃不重要的字段,比如“username”。我只需要将每一列添加到表中,直到我得到表中的所有auth字段,还是我做了一些根本性的错误?
TL;DR:如何使用现有的表为Django创建自定义身份验证方法?
2条答案
按热度按时间iqih9akk1#
正如你所说的,你会得到这些错误,因为你的表没有
AbstractUser
模型中定义的字段的列。最简单的解决方案是将所有缺失的字段添加到你的表中。或者,如果你想避免这种情况,你可以让你的用户模型子类
AbstractBaseUser
代替。这个抽象模型只有password
和last_login
的字段。注意,这种方法会有更多的工作。这似乎是一个很好的指南:https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user-model.html
r8xiu3jd2#
字符串