Django: OneToOneField没有属性model
我正在尝试创建一个个人资料系统,让我的用户在网站上的用户名与他们的Django用户名相同,并且允许他们创建个人简介。不过,当我尝试迁移时,出现了这个错误:
AttributeError: 'OneToOneField' object has no attribute 'model'
这是我的models.py文件:
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True)
bio = models.TextField(null=True)
slug = models.SlugField(default=user)
def __unicode__(self):
return "%s's profile" % self.user
def create_profile(sender, instance, created, **kwargs):
if created:
profile, created = UserProfile.objects.get_or_create(user=instance)
# Signal while saving user
from django.db.models.signals import post_save
post_save.connect(create_profile, sender=User)
这是我的admin.py:
from django.contrib import admin
from profiles.models import UserProfile
class UserProfileAdmin(admin.ModelAdmin):
list_display = ["user"]
admin.site.register(UserProfile, UserProfileAdmin)
有人知道问题出在哪里吗?谢谢。
1 个回答
0
试着不从 django.contrib.auth
导入 User
模型。
把 User
的导入行去掉(或者注释掉),还有信号绑定的部分也去掉,然后在 OneToOneField
中使用字符串来指定模型关系。关于如何用字符串指定关系的例子,可以在 文档中找到。
这看起来像是一个循环依赖的问题。
如果你还是遇到错误,试着从 INSTALLED_APPS
中去掉一些不需要的内容。