programing

장고 모델 "명시적인 app_label을 선언하지 않음"

sourcetip 2022. 11. 26. 13:51
반응형

장고 모델 "명시적인 app_label을 선언하지 않음"

어찌할 바를 모르겠어요.십여 시간의 트러블 슈팅 후, 그 이상의 시간이 흐른 후, 드디어 비즈니스를 시작했다고 생각했습니다만, 그 후 다음과 같은 것을 알았습니다.

Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label 

웹에는 이에 대한 정보가 거의 없고, 아직 해결 방법이 없습니다.어떤 조언이라도 해주시면 대단히 감사하겠습니다.

Python 3.4와 Django 1.10을 사용하고 있습니다.

내 설정에서.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는 py 에서 입니다.파이를 사용하다.manage.py createapp myAppName명령어를 입력합니다.서 ★★★★★myAppName앱 이름입니다.

설정을 지정합니다.화이

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.화이

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

don't do not declaricit app_label 오류가 표시되는 것은 매우 혼란스러운 일입니다.하지만 이 init 파일을 삭제한 후 문제가 해결되었습니다.

PyCharm에서 테스트를 실행할 때도 똑같은 오류가 발생하였습니다.명시적으로 설정함으로써 수정했습니다.DJANGO_SETTINGS_MODULE환경 변수입니다.PyCharm을 사용하는 경우 Edit Configurations 버튼을 누르고 Environment Variables(환경 변수)

를 " "로 설정합니다.your_project_name.settings그러면 문제가 해결될 거야

PyCharm을 사용하여 테스트를 하므로 이 .manage.py.

은 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★./manage.py shell의 directoryroot프로젝트레벨에서 했습니다.

# 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를 사용하는 noob으로, Django 오류 대신 Import 오류일 수 있습니다.

틀렸다:

from someModule import someClass

오른쪽:

from .someModule import someClass

며칠 전에 이런 일이 있었는데 재현이 잘 안 돼서...장고에 처음 와보는 사람들만 볼 수 있을 것 같아요.제가 기억하는 건 다음과 같습니다.

관리자에 모델을 등록하려고 합니다.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'

테스트에서 모델을 Import할 때 다음과 같은 오류가 발생하였습니다. 즉, 다음과 같은 Django 프로젝트 구조를 고려할 수 있습니다.

|-- myproject
    |-- manage.py
    |-- myproject
    |-- myapp
        |-- models.py  # defines model: MyModel
        |-- tests
            |-- test_models.py

test_models.py를 .MyModel다음과 같이 합니다.

from models import MyModel

다음과 같이 Import하면 문제가 해결되었습니다.

from myapp.models import MyModel

이게 도움이 됐으면 좋겠네요!

PS: 조금 늦었을지도 모르지만, 코드에서 이 문제를 해결하는 방법에 대한 답을 찾을 수 없습니다.솔루션을 공유하고 싶습니다.

저도 비슷한 문제가 있었지만 모델 클래스에서 메타 클래스를 사용하여 app_label을 명시적으로 지정함으로써 해결할 수 있었습니다.

class Meta:
    app_label  = 'name_of_my_app'

이가 발생했습니다. 가 속기법을 했기 때문입니다. 왜냐하면 제가 속기를 사용했기 때문입니다.from .models import *구문을 찾을 수 있습니다.문제는 다음과 같은 파일 구조를 가지고 있다는 것이었습니다.

    apps/
      myapp/
        models/
          __init__.py
          foo.py
          bar.py

및에models/__init__.py다음과 같은 속기 구문을 사용하여 모델을 Import하고 있었습니다.

    from .foo import *
    from .bar import *

어플리케이션에서는 다음과 같은 모델을 Import하고 있었습니다.

    from myapp.models import Foo, Bar

로 인해 " " "가 발생하였습니다.Django model doesn't declare an explicit app_label./manage.py test.

하려면 , 「Import」의 풀 할 .models/__init__.py:

    from myapp.models.foo import *
    from myapp.models.bar import *

이것으로 오류가 해결되었습니다.

H/t https://medium.com/ @michal.bock/fix-michal-exceptions-when-django-f58def71b59a

제 경우 프로젝트 레벨 urls.py에서 상대 모듈 경로를 사용했기 때문에 이 문제가 발생하였습니다.INSTALLED_APPS ★★★★★★★★★★★★★★★★★」apps.py프로젝트 루트에 뿌리를 두는 것이 아니라, 즉 상대 모듈 경로 + 해크가 아닌 전체 모듈 경로의 절대 모듈 경로입니다.

무리 in in in in in의 INSTALLED_APPS ★★★★★★★★★★★★★★★★★」apps.py에서 둘 다 안 요.runserver ★★★★★★★★★★★★★★★★★」pytest이 세 가지가 모두 프로젝트 루트에 뿌리내릴 때까지 작업하는 것입니다.

폴더 구조:

|-- manage.py
|-- config
    |-- settings.py
    |-- urls.py
|-- biz_portal
    |-- apps
        |-- portal
            |-- models.py
            |-- urls.py
            |-- views.py
            |-- apps.py

'달리다', '달리다', '달리다'를 할 수 요.manage.py runserver하고 wsgi로 gunicorn을 사용합니다.portal 뷰는는 pytest로 오류가 합니다.ModuleNotFoundError: No module named 'apps'불불에도 DJANGO_SETTINGS_MODULE이치노

설정/삭제py:

INSTALLED_APPS = [
    ...
    "apps.portal.apps.PortalConfig",
]

biz_filength/filength/filength/py:

class PortalConfig(AppConfig):
    name = 'apps.portal'

config/urls.py:

urlpatterns = [
    path('', include('apps.portal.urls')),
    ...
]

의 앱 참조를 config/config로 합니다.py 서 py py py py pybiz_portal.apps.portal.apps.PortalConfig ★★★★★★★★★★★★★★★★★」PortalConfig.name로로 합니다.biz_portal.apps.portal(pytest portal (아직은)runserver

Runtime Error: 모델 클래스 apps.portal.models.비즈니스가 명시적인 app_label을 선언하지 않고 INSTALLED_의 응용 프로그램에 없습니다.응용 프로그램

마침내 나는 에 대해 기뻐했다.apps.portalpy에서 아직 하고 있는을 확인하려면 , config/urls.py 에서 config/urls.py 의 패스를 사용할 필요가 .biz_portal.apps.portal.urls.

계속해서 이 문제에 부딪히고 이 질문으로 돌아오고 나서, 저는 제 문제가 무엇인지에 대해 공유하려고 생각했습니다.

@Xeberdee가 올바른 것은 모두 확인하시기 바랍니다.이것이 제 문제가 아니더라도 문제가 해결되는지 확인합니다.

apps.py에는 다음과 같은 내용이 있습니다.

class AlgoExplainedConfig(AppConfig):
    name = 'algo_explained'
    verbose_name = "Explain_Algo"
    ....

그리고 저는 앱 이름 앞에 프로젝트 이름을 이렇게 추가했을 뿐입니다.

class AlgoExplainedConfig(AppConfig):
name = '**algorithms_explained**.algo_explained'
verbose_name = "Explain_Algo"

이것으로 문제가 해결되어 make migrations와 migrate 명령어를 실행할 수 있었습니다.행운을 빕니다.

여기 있는 답변들 중 어느 것도 내 문제를 다루지 않았고, 우리를 여기로 데려온 오류 메시지는 나에게 경고 메시지임이 판명되었다. 하지만 나는 해결책을 찾았다.

이 문제의 진짜 원인은 다음과 같습니다.

  • Django가 앱 등록을 시도하다
  • 앱 등록 중 일부 예외 발생(근본 원인)
  • 예외적으로 취급하는 툴이 모델을 어딘가에 끌어당깁니다.
  • 해당 모델은 등록되지 않은 앱에 존재합니다(위의 근본 원인 예외로 인해 앱 등록이 중단되었기 때문에).
  • 마지막으로 죽기 전 마지막 행동으로 장고는 우리 모두를 여기로 데려온 불평을 토해냈다. SomeModel doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

이 에러(즉, 우리 모두를 여기에 불러들인 에러)에 신경 쓰지 않고, 스크롤 업 해 첫 번째 에러 메세지를 읽어낼 필요가 있었습니다.

다른 것처럼 보일 수 있습니다.등록을 방해하는 모든 것이 될 수 있습니다.저에게 있어서 근본적인 문제는 다음과 같습니다.

Traceback (most recent call last):
[...SNIP...]                                                                                                                                                                                      
  File "/Users/user/.pyenv/versions/appName_py3/lib/python3.7/site-packages/django/__init__.py", line 24, in setup                   
    apps.populate(settings.INSTALLED_APPS)                                                                                         
  File "/Users/user/.pyenv/versions/appName_py3/lib/python3.7/site-packages/django/apps/registry.py", line 114, in populate 
    app_config.import_models()                                                                                                       
[... SNIP ...]                                                                                                    
  File "/Users/user/app_name/api/models/models.py", line 1122, in <module>              
    class SomeObject(models.Model):                                                                                     
  File "/Users/user/dev_alt/app_name/api/models/models.py", line 1134, in SomeObject
    some_property = models.ForeignKey(SomeOtherObject, null=True, blank=True)                         
TypeError: __init__() missing 1 required positional argument: 'on_delete'   

[...SNIP...]
During handling of the above exception, another exception occurred:

<RED HERRING STACK TRACE THAT BROUGHT US ALL HERE>

" 원인" 수 저는 1.3.하고 있었습니다.그는 하위 을 실시하여 것을 했습니다. 장고 1.113.2.x로 하다이 과정에서 Django는 하위 호환성을 깨는 변경을 수행했습니다.ForeignKey ★★★★★★★★★★★★★★★★★」OneToOne에는 '''가 .on_delete★★★★★★ 。

의 위반 이 근본 문제 및 '200'에 대해서도 마찬가지입니다.doesn't declare an explicit app_label문제가 해결되었습니다.

아마 당신은 수입의존자가 있을 겁니다.

내 경우 모델에서 serializer 클래스를 매개 변수로 사용했으며 serializer 클래스는 serializer_class = AccountSerializer 모델을 사용했습니다.

from ..api.serializers import AccountSerializer

class Account(AbstractBaseUser):
    serializer_class = AccountSerializer
    ...

그리고 "시리얼라이저" 파일에서:

from ..models import Account

class AccountSerializer(serializers.ModelSerializer):
    class Meta:
        model = Account
        fields = (
            'id', 'email', 'date_created', 'date_modified',
            'firstname', 'lastname', 'password', 'confirm_password')
    ...

오늘 이 에러가 나서, 구글 검색 후에 여기까지 오게 되었습니다.기존의 답변들 중 어느 것도 제 상황과 관련이 없는 것 같습니다. 할 은 내 수입품에서 이었다.__init__.py이치노저는 모델을 사용하여 제 수입품을 기능으로 옮겨야 했습니다.

장고는 여러 시나리오에서 이렇게 실패할 수 있는 이상한 코드를 가지고 있는 것 같아요!

저도 이 에러가 나서 거의 이틀을 고민하다가 드디어 해결이 되었습니다.솔직히...에러는 문제의 본질과는 아무런 관련이 없습니다.내 경우 그것은 구문의 간단한 문제였다.python module standalone을 실행하려고 했는데, django module 자체는 django model이 아니었습니다.하지만 나는 수업이 잘못되었다고 선언하고 있었다.

갖는 대신

class Scrapper:
    name = ""
    main_link= ""
    ...

하고 있었어요

class Scrapper(Website):
    name = ""
    main_link= ""
    ...

확실히 틀렸습니다.메시지가 너무 오해의 소지가 있어서 어쩔 수 없이 설정에 문제가 있거나 django를 잘못 사용하는 것이 아닌가 하는 생각이 듭니다.

제가 같은 바보 같은 일을 겪으면 그들의 문제를 해결할 수 있을 것 같은 새로운 사람을 위해 이 사실을 여기서 공유하겠습니다.

Django Rest Framework 앱을 DRF 3.6.3과 Django 1.11.1로 업그레이드하려고 할 때 이 오류가 발생했습니다.

이 상황에 있는 다른 누군가를 위해, 나는 GitHub 문제에서 나의 해결책을 찾았습니다. 그것은 바로 GitHub를 설정 해제하는 것입니다.UNAUTHENTICATED_USERDRF 설정의 설정:

# webapp/settings.py
...
REST_FRAMEWORK = {
    ...
    'UNAUTHENTICATED_USER': None
    ...
}

는 i after the the i, the the the the the the the the the 를 옮긴 하였습니다.SECRET_KEY응용 프로그램 실행 시 환경 변수에서 꺼낸 후 설정하지 않았습니다. your your your your your your your your your your your your your your your에 이런 게 있으면settings.py

SECRET_KEY = os.getenv('SECRET_KEY')

환경변수를 실제로 설정하고 있는지 확인합니다.

git merge로 인해 기존 잘못된 형식의 마이그레이션이 있는 단일 앱에 대해 마이그레이션을 생성하려고 할 때 이 오류가 발생했습니다.

manage.py makemigrations myapp

이행을 삭제하고 실행했을 때:

manage.py makemigrations

오류가 발생하지 않았으며 마이그레이션이 생성되었습니다.

나는 이 문제에 부딪혀 무엇이 잘못되고 있는지 알게 되었다.이전 답변에서는 나에게 일어난 문제를 설명하지 않았기 때문에 다른 사람을 위해 게시하려고 했습니다.

  • 이 문제는 사용에서 비롯되었습니다.python migrate.py startapp myApp을 myApp이 폴더로 합니다.mv myApp myFolderWithApps/.
  • 하고 myApp.models를 했습니다.python migrate.py makemigrations다다하다
  • 그리고 myApp에서 모델을 Import하는 다른 앱에서도 같은 작업을 수행했습니다.migrations.make migrations 실행 발생하였습니다. 나는 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★myFolderWithApps.myAppMyApp / apps.py 업appappapp 。.py,.py, settings/INSTALLED_myApp/apps.py, settings/INSTALLED_myINSTALLED를 했습니다.APPS 앱스입니다.
  • 하지만 계속해서 오류가 발생했습니다. 그 이유는 잘못된 경로로 myApp에서 모델을 가져오려는 마이그레이션이 있었기 때문입니다.이행 파일을 수정하려고 했지만 DB 리셋과 이행 삭제가 더 쉬워져 처음부터 다시 시작할 수 있게 되었습니다.

요약하자면, 이 문제는 처음에 myApp의 apps.py에 있는 잘못된 앱 이름, 설정 및 두 번째 앱의 Import 경로에서 발생했지만, 잘못된 앱 이름을 참조하는 Import로 인해 마이그레이션이 생성되었기 때문에 이 세 곳의 경로를 수정하기에는 충분하지 않았습니다.따라서 이행 중에 (이번에 이행한 경우를 제외하고) 같은 에러가 계속 발생했습니다.

그럼... 이동 확인하시고 행운을 빌어요!

Django rest_framework에서 API를 구축하는 동안 비슷한 오류가 발생했습니다.

Runtime Error: 모델 클래스 apps.core.models.University는 명시적> app_label을 선언하지 않으며 INSTALLED_APPS의 응용 프로그램에도 없습니다.

luke_aus의 답변이 URL을 수정하는 데 도움이 되었습니다.화이

부터

from project.apps.views import SurgeryView

로.

from apps.views import SurgeryView

제 경우 코드를 Django 1.11.11에서 Django 2.2로 이식할 때 이 오류가 발생하였습니다.사용자 지정 FileSystemStorage 파생 클래스를 정의하고 있었습니다.장고 1.11에서는 다음과 같은 모델 라인을 사용하고 있었습니다.py:

from django.core.files.storage import Storage, DefaultStorage

파일 뒷부분에는 클래스 정의가 있습니다.

class MyFileStorage(FileSystemStorage):

2.으로 참조할 .FileSystemStorage【 Import】:

from django.core.files.storage import Storage, DefaultStorage, FileSystemStorage

그리고 voila! 오류는 사라집니다.

모든 사용자가 Django 서버에서 보낸 오류 메시지의 마지막 부분을 보고합니다.그러나 위로 스크롤을 하면 그 에러 mambo-jambo의 중간에 원인을 알 수 있습니다.

PyCharm 사용자의 경우:"깨끗하지 않은" 프로젝트 구조를 사용하는 데 오류가 발생했습니다.

대상:

project_root_directory
└── src
    ├── chat
    │   ├── migrations
    │   └── templates
    ├── django_channels
    └── templates

지금:

project_root_directory
├── chat
│   ├── migrations
│   └── templates
│       └── chat
├── django_channels
└── templates

좋은 구조를 하거나 PyCharm 한 후 설정해 DJANGO_SETTINGS_MODULE수수등등등등다다

도움이 됐으면 좋겠어요.건배.

, when실실 in in in in in in in in in in in in in in in in in in in in in in를 하려고 할 때 이 오류가 .python manage.py runserver가상환경에 접속되어 있지 않을 수 있습니다.

경우에는 '가져오기', '가져오기', '가져오기'에서도 같은 .manage.py shelldb와 DB를 사용하다DB 업데이트 후 셸을 재시작하는 것을 잊었습니다.

이 문제를 해결하려면 다음 명령을 사용하여 셸을 중지해야 합니다.

>>> exit()

그런 다음 다음 다음 명령을 사용하여 셸을 재시작합니다.

$ python3 manage.py shell

이게 나 같은 사람에게 도움이 되길 바라.

제 경우 수정점을 찾을 수 있었고, 다른 모든 사람의 코드를 보면 같은 문제일 수 있습니다.그냥 'django.contrib'만 추가하면 돼.사이트'를 settings.py 파일의 설치된 앱 목록으로 이동합니다.

이게 도움이 됐으면 좋겠어요이것은 코딩 커뮤니티에 대한 나의 첫 번째 공헌이다.

TL;DR: 공백 __init_.py를 추가하면 문제가 해결되었습니다.

PyCharm에서 이 오류가 발생하여 설정 파일이 전혀 Import되지 않은 것을 알게 되었습니다.명백한 오류는 없었지만, settings.py에 난센스 코드를 넣었을 때 오류가 발생하지 않았습니다.

local_foldersettings.py 가 있습니다.그러나 Import할 수 있도록 __init_.py를 같은 폴더에 포함시키고 싶습니다.이것을 추가하자 오류가 사라졌습니다.

설정이 모두 올바른 경우 Import가 혼란스러울 수 있습니다.문제가 되는 모델을 가져오는 방법을 주시합니다.

으로는 안 from .models import Business합니다.「 Import 」 。from myapp.models import Business

PyCharm "Python console"(또는 "Django console")에서 가져오려고 할 때 이 오류가 나타나는 경우:

콘솔을 재시작해 보십시오.

이것은 꽤 창피한 일이지만, 내가 그것을 잊고 있었다는 것을 깨닫기까지 시간이 좀 걸렸다.

무슨 일이 일어났는지 설명하겠습니다.

Python/Django(PyCharm pro 2019.2) Import(Import)가 상승했습니다.doesn't declare an explicit app_label입니다.INSTALLED_APPS앱을 INSTALLED_APPS수입하다

여기 와서 다른 답을 다 읽었는데 맞는 게 하나도 없었어

새로운 을 Python에 한 후 .INSTALLED_APPS.

주의:한 후 입니다.PyCharm Python은 혼란스러운 정보를 수 .ImportError: Cannot import name ...

다른 답을 읽은 후.나는 그것을 이해할 수 있었다.상황에 따라 다른 접근법이 사용됩니다.내가 설명해줄게.내 사건을 어떻게 해결했는지이것은 다른 사람들에게도 도움이 될 것이다.

여기에 이미지 설명 입력

test_model.py 모델 클래스에 대한 pycharm 및 pycharm 맵에 오류 또는 경고가 표시되지 않습니다.

여기에 이미지 설명 입력

테스트 실행 중 다음과 같이 표시되는 중 오류 발생

python manage.py test cheese

여기에 이미지 설명 입력

솔루션

여기에 이미지 설명 입력

from everych.cheese.models import Dodavatel

오류 없는 출력:

여기에 이미지 설명 입력

결론:테스트 클래스의 앱 모델 클래스 Import를 제안하는 대부분의 답변이 문제이므로 Import가 올바른지 확인하십시오.

오늘도 이 에러가 발생했습니다.메시지는 INSTALLED_APPS에 있는 앱의 특정 앱을 참조했습니다.하지만 사실 이 앱과는 아무런 관련이 없습니다.새로운 가상 환경을 사용했는데 이 프로젝트에서 사용한 라이브러리를 설치하는 것을 잊었습니다.추가 라이브러리를 설치한 후 동작했습니다.

언급URL : https://stackoverflow.com/questions/40206569/django-model-doesnt-declare-an-explicit-app-label

반응형