Django:OneToOneField没有属性模型

时间:2014-10-21 00:35:02

标签: python django django-models

我正在尝试创建个人资料系统,其中我的用户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 :(得分:0)

尝试不从User导入django.contrib.auth模型。

删除(或注释掉)User导入行,信号绑定,并在OneToOneField中切换到基于字符串的关系模型规范。可以找到基于字符串的关系规范的示例in the docs

这看起来像一个循环依赖的东西。

如果您仍然收到错误,请尝试从INSTALLED_APPS删除不需要的内容。