나는 재치의 끝이다. 수십 시간의 문제 해결을 마치고 아마 더 많은 시간을 들여 마침내 사업에 들어갔다고 생각했지만 다음과 같은 결과를 얻었습니다.
Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label
웹에 이것에 대한 정보가 너무 적으며 해결책이 내 문제를 해결하지 못했습니다. 어떤 조언이라도 대단히 감사하겠습니다.
저는 Python 3.4와 Django 1.10을 사용하고 있습니다.
내 settings.py에서 :
INSTALLED_APPS = [
'DeleteNote.apps.DeletenoteConfig',
'LibrarySync.apps.LibrarysyncConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
내 apps.py 파일은 다음과 같습니다.
from django.apps import AppConfig
class DeletenoteConfig(AppConfig):
name = 'DeleteNote'
과
from django.apps import AppConfig
class LibrarysyncConfig(AppConfig):
name = 'LibrarySync'
답변
설정 파일에 응용 프로그램 이름을 넣지 않았습니까? 는 myAppNameConfig
에 의해 apps.py에서 생성 된 기본 클래스입니다 .manage.py createapp의 myAppName의 명령. 여기서 myAppName 은 앱의 이름입니다.
settings.py
INSTALLED_APPS = [
'myAppName.apps.myAppNameConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
이렇게하면 설정 파일이 응용 프로그램을 호출 할 항목을 찾습니다. 다음 코드를 추가하여 apps.py 파일에서 나중에 표시되는 방식을 변경할 수 있습니다.
myAppName / apps.py
class myAppNameConfig(AppConfig):
name = 'myAppName'
verbose_name = 'A Much Better Name'
답변
동일한 오류가 발생하고이 문제를 해결하는 방법을 모릅니다. django의 manage.py와 동일한 디렉토리에 init.py가 있다는 것을 알아 차리는 데 많은 시간이 걸렸습니다.
전에:
|-- myproject
|-- __init__.py
|-- manage.py
|-- myproject
|-- ...
|-- app1
|-- models.py
|-- app2
|-- models.py
후:
|-- myproject
|-- manage.py
|-- myproject
|-- ...
|-- app1
|-- models.py
|-- app2
|-- models.py
“명시적인 app_label을 선언하지 않음”오류가 발생하는 것은 매우 혼란 스럽습니다. 그러나이 초기화 파일을 삭제하면 내 문제가 해결되었습니다.
답변
PyCharm으로 테스트를 실행할 때 똑같은 오류가 발생했습니다. DJANGO_SETTINGS_MODULE
환경 변수 를 명시 적으로 설정하여 수정했습니다 . PyCharm을 사용하는 경우 구성 편집 버튼을 누르고 환경 변수를 선택하십시오 .
변수를로 설정하면 your_project_name.settings
문제가 해결됩니다.
PyCharm이 자체적으로 테스트를 실행하기 때문에이 오류가 발생하는 것 같습니다 manage.py
.
답변
나는 이것을 사용할 때 ./manage.py shell
실수로 루트 프로젝트 수준 디렉토리에서 가져 왔습니다.
# don't do this
from project.someapp.someModule import something_using_a_model
# do this
from someapp.someModule import something_using_a_model
something_using_a_model()
답변
Python3을 사용하는 멍청한 사람으로서 Django 오류 대신 가져 오기 오류 일 수 있음 을 알았습니다 .
잘못된:
from someModule import someClass
권리:
from .someModule import someClass
며칠 전에 이런 일이 발생했지만 실제로 재현 할 수 없습니다 … Django를 처음 접하는 사람들 만이 문제를 접할 수 있다고 생각합니다.
admin.py에 모델 등록을 시도하십시오 :
from django.contrib import admin
from user import User
admin.site.register(User)
서버를 실행하려고하면 오류는 다음과 같습니다.
some lines...
File "/path/to/admin.py" ,line 6
tell you there is an import error
some lines...
Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label
변화 user
하는 .user
, 문제가 해결
답변
나는 지금 바로 같은 문제가 있었다. 앱 이름에 네임 스페이스를 추가하여 내 문제를 해결했습니다. 누군가가 도움이되기를 바랍니다.
apps.py
from django.apps import AppConfig
class SalesClientConfig(AppConfig):
name = 'portal.sales_client'
verbose_name = 'Sales Client'
답변
테스트에서 모델을 가져올 때이 오류가 발생했습니다. 즉이 Django 프로젝트 구조가 주어졌습니다.
|-- myproject
|-- manage.py
|-- myproject
|-- myapp
|-- models.py # defines model: MyModel
|-- tests
|-- test_models.py
이 방법으로 test_models.py
가져온 파일 MyModel
에서 :
from models import MyModel
이 방법으로 가져 오면 문제가 수정되었습니다.
from myapp.models import MyModel
도움이 되었기를 바랍니다!
추신 : 아마도 이것은 조금 늦었을 수도 있지만 다른 사람들은 내 코드 에서이 문제를 해결하는 방법에 대한 답변을 찾지 못했고 솔루션을 공유하고 싶습니다.