【发布时间】:2013-10-26 08:25:21
【问题描述】:
我制作了一个如下所示的自定义配置文件模型:
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.ForeignKey('User', unique=True)
name = models.CharField(max_length=30)
occupation = models.CharField(max_length=50)
city = models.CharField(max_length=30)
province = models.CharField(max_length=50)
sex = models.CharField(max_length=1)
但是当我运行manage.py syncdb 时,我得到:
myapp.userprofile: 'user' 与模型 User 有关系,它有 要么没有安装,要么是抽象的。
我也试过了:
from django.contrib.auth.models import BaseUserManager, AbstractUser
但它给出了同样的错误。我错在哪里以及如何解决这个问题?
【问题讨论】:
-
你的settings.py中
INSTALLED_APPS中的“django.contrib.auth”是否存在? -
这个似乎有效:'user = models.OneToOneField(User, primary_key=True)'。但是不确定有什么区别。
-
不同之处在于,对于 OneToOneField,用户只能拥有一个配置文件(这可能是您想要的)。
标签: python django django-users