2016-09-18 3 views
0

Django를 처음 사용하고 있으며 AbstractBaseUser 모델에서 사용자를 생성하는 데 어려움을 겪고 있습니다. 이제 내 사용자 모델이 올바른 방식으로 빌드되지 않는지 궁금해지기 시작했습니다. 이것은 내 사용자 모델Django : ImportError : 'User'라는 이름을 가져올 수 없습니다.

from django.db import models 
from django.contrib.auth.models import AbstractBaseUser 

class User(AbstractBaseUser): 
    ''' 
    Custom user class. 
    ''' 
    username = models.CharField('username', max_length=10, unique=True, db_index=True) 
    email = models.EmailField('email address', unique=True) 
    joined = models.DateTimeField(auto_now_add=True) 
    is_active = models.BooleanField(default=True) 
    is_admin = models.BooleanField(default=False) 

내가이 DB에

Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/myuser/django-book/lib/python3.5/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/home/myuser/django-book/lib/python3.5/site-packages/django/core/management/__init__.py", line 341, in execute 
    django.setup() 
    File "/home/myuser/django-book/lib/python3.5/site-packages/django/__init__.py", line 27, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/home/myuser/django-book/lib/python3.5/site-packages/django/apps/registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "/home/myuser/django-book/lib/python3.5/site-packages/django/apps/config.py", line 199, in import_models 
    self.models_module = import_module(models_module_name) 
    File "/home/myuser/django-book/lib/python3.5/importlib/__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
    File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "/home/myuser/django-book/mytweets/tweets/models.py", line 2, in <module> 
    from user_profile import User 
ImportError: cannot import name 'User' 

내가 사용 내 새로운 모델을 마이그레이션 할 때 사용자는

from django.db import models 
from user_profile import User 

class Tweet(models.Model): 
    ''' 
    Tweet model 
    ''' 
    user = models.ForeignKey(User) 
    text = models.CharField(max_length=160) 
    created_date = models.DateTimeField(auto_now_add=True) 
    country = models.CharField(max_length=30) 
    is_active = models.BooleanField(default=True) 

다음이 다른 모델에서 참조 django 1.10.1 우분투 16.04와 python3.5 그리고 mysql 데이터베이스.

+0

디렉토리 구조는 무엇입니까? 두 모듈이 서로 다른 디렉토리에 있습니까? –

+0

'UserProfile'으로 'User'모델 이름을 변경하려고 시도 했습니까? 'django.contrib.auth.models'도'User'라는 이름의 모델을 포함하고 있기 때문에 사용자 모델에 독특한 사용자 이름을 사용해보십시오. –

+0

실제로 그들은 다른 응용 프로그램에있었습니다 ...하지만 @ Zulfugar의 대답은 내 문제를 해결했습니다. 초보자 실수였습니다 – WisdomPill

답변

1

올바른 패키지에서 가져 오지 않았습니다.

사용 :

from user_profile.models import User 
+0

응용 프로그램 이름 다음에 모델을 지정하는 것이 필수적으로 된시기는 언제입니까? 내가 따르는 튜토리얼은 하위 모듈 "models"의 모델을 검색하지 않습니다. – WisdomPill

+0

@WisdomPill 클래스가 models.py 파일에 있고 파일이 응용 프로그램 폴더에 있습니다. 그래서 모델에서 가져와야합니다. –