2014-10-21 1 views
0

내 사용자 django 사용자 이름이 사이트의 사용자 이름이 될 프로필 시스템을 만들려고합니다. 또한 사용자가 bio를 만들 수 있도록합니다. 여기 Django : OneToOneField에는 특성 모델이 없습니다

AttributeError: 'OneToOneField' object has no attribute 'model' 

내 models.py 파일입니다 : 내가 마이그레이션 할 때, 나는이 오류 얻을

from django.contrib import admin 
from profiles.models import UserProfile 

class UserProfileAdmin(admin.ModelAdmin): 
    list_display = ["user"] 

admin.site.register(UserProfile, UserProfileAdmin) 

사람 : 여기

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입니다 문제가 뭔지 알아? 감사.

+0

'OneToOneField'는 정의에 따라'고유 '입니다. 해당 매개 변수를 생략 할 수 있습니다. –

+0

전체 추적을 표시해야합니다. 정확히 어디에서 오류가 발생합니까? –

답변

0

User 모델을 가져 오지 않고 (django.contrib.auth) 시도해보십시오.

User 가져 오기 줄, 신호 바인딩을 제거 (또는 주석으로 처리)하고 문자열 기반 모델 관계 사양을 OneToOneField으로 전환합니다. 문자열 기반 관계 사양의 예는 in the docs입니다.

이것은 순환 종속성과 같습니다.

오류가 계속 발생하면 INSTALLED_APPS에서 필요없는 것을 제거해보십시오.

+0

'django.contrib.auth.models에서 가져온 사용자 '를 주석 처리 할 때 여전히 작동하지 않습니다. INSTALLED_APPS에 대한 기본값은 프로필 앱이 문제이고 또 다른 앱은 정상적으로 작동한다는 것입니다. 이것이 도움이 될지 모르겠지만 [여기에 더 자세한 오류 메시지가 있습니다] (http://pastebin.com/ttKHDUe5). – ng150716

관련 문제