您的位置:首页 > 编程语言 > Go语言

django 扩展自带User表遇到的问题

2018-10-24 16:03 127 查看

首先要扩展自带的auth_user表我就放个图吧,

同时setting中应该设置:

[code]# 此处重载是为了使UserProfile生效
AUTH_USER_MODEL = "EcdsApp.UserProfile"

 

本人的项目需要对此表进行扩展,再建两个子表关联这个表,关联关系为一对一:

修改完成之后进行子表关联:

[code]from django.contrib.auth.models import AbstractUser, User
from django.conf import settings
[code]class UserInfo(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

直接关联肯定会报错,此时加入上面两段代码,

第一个是引入  setting

第二个是在关联字段哪里将原有的User   更换为setting.AUTH_USER_MODEL

此时再次迁移应该就能成功了,

 

能够迁移成功但是还会有问题。

我后面的功能代码中原先写的有用到;User这个表的地方,代码运行到这里就会出错。报错信息如下

[code]AttributeError: Manager isn't available; 'auth.User' has been swapped for 'EcdsApp.UserProfile'

原因是原User表已经发生改变这里也需要变动一下:

[code]from django.contrib.auth import get_user_model
User = get_user_model()

直接将这两行加入到你所有使用到原User表的py文件中,基本问题就可以解决

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: