Model Django „nie deklaruje jawnej etykiety_aplikacji”

119

Koniec dowcipu. Po kilkunastu godzinach rozwiązywania problemów, prawdopodobnie więcej, myślałem, że w końcu jestem w biznesie, ale potem otrzymałem:

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

W sieci jest TAK MAŁO informacji na ten temat i żadne rozwiązanie nie rozwiązało mojego problemu. Każda rada byłaby ogromnie mile widziana.

Używam Pythona 3.4 i Django 1.10.

Z mojego 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',
]

A moje pliki apps.py wyglądają tak:

from django.apps import AppConfig


class DeletenoteConfig(AppConfig):
    name = 'DeleteNote'

i

from django.apps import AppConfig


class LibrarysyncConfig(AppConfig):
    name = 'LibrarySync'
Slbox
źródło
2
Nie masz django.contrib.contenttypes w INSTALLED_APPS.
RemcoGerlich
2
Inną prawdopodobną rzeczą jest to, że zaimportowałeś go przed załadowaniem modeli, czy jakaś aplikacja jest wymieniona przed typami zawartości w INSTALLED_APPS, używając jej?
RemcoGerlich
1
To niezwykłe, nie masz w ogóle własnego projektu ani aplikacji?
RemcoGerlich
1
Wszystko, co ma models.py, powinno znajdować się w INSTALLED_APPS; a jeśli jeden z nich używa contenttype (np. z powodu ogólnego klucza obcego), to musi znajdować się pod contenttypes na liście.
RemcoGerlich
1
Frustrujące, prawdopodobnie będzie to coś bardzo małego, ale trudno powiedzieć skąd. Czy importujesz jakieś swoje rzeczy do settings.py?
RemcoGerlich

Odpowiedzi:

91

Brakuje Ci umieszczania nazwy aplikacji w pliku ustawień? Jest myAppNameConfigto domyślna klasa generowana w apps.py przez polecenie .manage.py createapp myAppName . Gdzie myAppName to nazwa Twojej aplikacji.

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',
]

W ten sposób plik ustawień określa, co chcesz nazwać swoją aplikacją. Możesz zmienić jego wygląd później w pliku apps.py, dodając następujący kod w

myAppName / apps.py

class myAppNameConfig(AppConfig):
    name = 'myAppName'
    verbose_name = 'A Much Better Name'
Xeberdee
źródło
Okay, więc ma to dla mnie dużo sensu w tym przykładzie i zaimplementowałem zmiany w oparciu o moje zrozumienie składni, ale nadal trafiam w 100% dokładnie ten sam błąd. Zaktualizowałem mój post, aby rozwinąć.
Slbox
2
Dziękuję @xeberdee i @RemcoGerlich za ich pomoc w tym. Ostatecznie moim rozwiązaniem było załadowanie moich aplikacji poniżej aplikacji django.contrib i przeniesienie mojego wpisu import django django.setup()w moim settings.py pod INSTALLED_APPSwpis.
Slbox
2
Tak z ciekawości - po co importować django django.setup () w pliku ustawień? Ponadto Twoje aplikacje powinny się ładować, nawet jeśli są pierwszymi na liście zainstalowanych aplikacji.
Xeberdee
1
Jaka jest różnica między tym a tym, co napisał w swoim pytaniu?
Matt D,
1
Chodziło o to, w jaki sposób aplikacja jest wykrywana w ustawieniach INSTALLED_APPS poprzez pole nazwy klasy w pliku konfiguracyjnym. Post został edytowany.
Xeberdee,
36

Otrzymuję ten sam błąd i nie wiem, jak rozwiązać ten problem. Zajęło mi wiele godzin, zanim zauważyłem, że mam plik init.py w tym samym katalogu, co manage.py z django.

Przed:

|-- myproject
  |-- __init__.py
  |-- manage.py
  |-- myproject
    |-- ...
  |-- app1
    |-- models.py
  |-- app2
    |-- models.py

Po:

|-- myproject
  |-- manage.py
  |-- myproject
    |-- ...
  |-- app1
    |-- models.py
  |-- app2
    |-- models.py

Jest dość zdezorientowany, że otrzymujesz ten błąd „nie deklaruje jawnego błędu app_label”. Ale usunięcie tego pliku init rozwiązało mój problem.

samuel
źródło
2
Święta dymi, patrzyłem na to tak długo - świetny połów!
user3167654
Próbuję wygenerować dokumentację za pomocą pydoc, a moja aplikacja jest ukryta bez init.py
Serg Smyk
20

Miałem dokładnie ten sam błąd podczas uruchamiania testów z PyCharm. Naprawiłem to, jawnie ustawiając DJANGO_SETTINGS_MODULEzmienną środowiskową. Jeśli używasz PyCharm, po prostu naciśnij przycisk Edytuj konfiguracje i wybierz Zmienne środowiskowe .

Ustaw zmienną na your_project_name.settingsi to powinno rozwiązać problem.

Wygląda na to, że ten błąd występuje, ponieważ PyCharm przeprowadza własne testy manage.py.

stasdeep
źródło
1
Wystąpił problem z uruchomieniem Pycharm Tests, chociaż uruchomienie serwera przez Pycharm nie wymagało dodawania ustawień. Ręczne dodawanie DJANGO_SETTINGS_MODULE do konfiguracji do testu rozwiązane, jeśli dla mnie.
PhoebeB
1
Ponadto podczas edycji konfiguracji przydatna jest edycja szablonów.
Yngve Høiseth,
1
Ustawienia -> Języki i frameworki -> Django -> Dodanie wartości w ustawieniach zostanie automatycznie ustawione DJANGO_SETTINGS_MODULEdla każdej nowej konfiguracji uruchamiania testowego Django i Django.
Tobias Ernst
FYI, zrobiłem dokładnie tak, jak wskazuje to rozwiązanie i nie zadziałało za pierwszym razem. Okazuje się, pycharm nie uratowało DJANGO_SETTINGS_MODULEpo raz pierwszy po kliknięciu Applypotem OK. Zrobiłem to drugi raz i teraz działa. Wydaje się, że trochę dziwności PyCharm.
MikeyE
Musiałem się upewnić, że poprawnie zadeklarowałem import: z <app>.<module> import <class>- brak automatycznego importu PyCharm <app>. Kiedy już to poprawiłem (sprawdziłem również moduły zależne), to działało dobrze.
Matthew Hegarty
18

Dostałem ten, kiedy użyłem, ./manage.py shell a następnie przypadkowo zaimportowałem z katalogu głównego poziomu projektu

# 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()
lukeaus
źródło
w moim przypadku musiałem zmienić from fields import xnafrom .fields import x
daigorocub
13

jako noob używający Python3 uważam, że może to być błąd importu zamiast błędu Django

źle:

from someModule import someClass

dobrze:

from .someModule import someClass

zdarzyło się to kilka dni temu, ale naprawdę nie mogę tego odtworzyć ... Myślę, że tylko osoby nowe w Django mogą to spotkać. oto co pamiętam:

spróbuj zarejestrować model w admin.py:

from django.contrib import admin
from user import User
admin.site.register(User)

spróbuj uruchomić serwer, błąd wygląda tak

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

zmiana userna .user, problem rozwiązany

rpstw
źródło
9
Witamy w stackoverflow! Czuję się zmuszony wspomnieć, że pańska odpowiedź nie ma związku z pytaniem PO. Jako noob powinieneś ostrożnie proponować rozwiązania bez uprzedniej weryfikacji ich poprawności. Ale proszę, wracaj i publikuj konkretne odpowiedzi, kiedy możesz - dzięki!
evadeflow
1
Chciałbym, żeby więcej komentarzy na temat Stacka było jak twój Xeon Phil. Zbyt często nowi użytkownicy są przeganiani przez wściekłych komentatorów niezadowolonych z tego, że nie są ekspertami od Stack od pierwszego dnia.
Slbox,
1
Masz rację @evadeflow, moja pierwsza odpowiedź wygląda na zupełnie niezwiązaną, staram się wyjaśnić odpowiedź, ale mam tylko nadzieję, że odpowiedź będzie przydatna.
rpstw,
W moim przypadku było podobnie. „from ..core.models import CommonInfo” musiało stać się „from apps.core.models import CommonInfo”
user42488
To był mój problem, zasłonięty, ponieważ działo się to w 2 oddzielnych plikach. Cholera, zagnieżdżony import! Cholera, moje głupie odrzucenie rozsądnych zmian 2to3!
9999 lat
13

Miałem teraz ten sam problem. Naprawiłem moje, dodając przestrzeń nazw w nazwie aplikacji. Mam nadzieję, że ktoś uzna to za pomocne.

apps.py

from django.apps import AppConfig    

class SalesClientConfig(AppConfig):
        name = 'portal.sales_client'
        verbose_name = 'Sales Client'
Wreeecks
źródło
8

Otrzymałem ten błąd podczas importowania modeli w testach, czyli biorąc pod uwagę tę strukturę projektu Django:

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

w pliku test_models.pyzaimportowałem MyModelw ten sposób:

from models import MyModel

Problem został rozwiązany, jeśli został zaimportowany w ten sposób:

from myapp.models import MyModel

Mam nadzieję że to pomoże!

PS: Może to trochę za późno, ale nie znalazłem w innych odpowiedziach jak rozwiązać ten problem w moim kodzie i chcę się podzielić swoim rozwiązaniem.

Juliusz Cezar
źródło
juliocesar, jesteś mistrzem. Dzięki. To był śmieszny błąd.
Kirk
2
Znalezienie tego zajęło mi więcej czasu, niż się spodziewałem. Używałem importu względnego w moim pliku test.py. Wystąpił błąd podczas używania from .models import MyModel. Zmiana, aby from myapp.models import MyModelrozwiązać problem.
mnich
@monkut to samo tutaj. Zastanawiam się, dlaczego tak się dzieje. Nawiasem mówiąc, używam niestandardowego folderu aplikacji. „/ apps” w katalogu głównym projektu, dodane do ścieżki.
4

Po ciągłym napotykaniu tego problemu i powracaniu do tego pytania, pomyślałem, że podzielę się, na czym polega mój problem.

Wszystko, co @Xeberdee jest poprawne, więc śledź to i zobacz, czy to rozwiązuje problem, jeśli nie, to był mój problem:

W moim apps.py mam to:

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

Wszystko, co zrobiłem, to dodałem nazwę projektu przed nazwą mojej aplikacji w następujący sposób:

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

i to rozwiązało mój problem, a potem mogłem uruchomić polecenie makemigrations i migrate! powodzenia

ZaMy
źródło
3

Wystąpił ten błąd dzisiaj, próbując uruchomić testy Django, ponieważ użyłem skróconej from .models import *składni w jednym z moich plików. Problem polegał na tym, że miałem taką strukturę plików:

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

aw roku models/__init__.pyimportowałem swoje modele używając skróconej składni:

    from .foo import *
    from .bar import *

W swojej aplikacji importowałem modele takie jak:

    from myapp.models import Foo, Bar

To spowodowało, że Django model doesn't declare an explicit app_labelpodczas biegania ./manage.py test.

Aby rozwiązać problem, musiałem jawnie zaimportować z pełnej ścieżki w models/__init__.py:

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

To rozwiązało problem.

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

inostia
źródło
To był również problem dla mnie. Dzięki!
Sam Creamer
3

W moim przypadku to się dzieje, ponieważ użyłem ścieżki względnej modułu w projekcie poziomu urls.py , INSTALLED_APPSa apps.pyzamiast być zakorzenione w katalogu głównym projektu. tzn. bezwzględne ścieżki modułów w całym tekście, a nie względne ścieżki modułów + hacki.

Bez względu na to, jak bardzo majstrowałem w ścieżkach w mojej aplikacji INSTALLED_APPSi apps.pyw mojej aplikacji, nie mogłem uzyskać obu runserveri pytestpracować, dopóki wszystkie trzy z nich nie zostaną zakorzenione w katalogu głównym projektu.

Struktura folderów:

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

Z następującymi mógłbym bez problemu uruchomić manage.py runserveri gunicorn z wsgi i korzystać z portalwidoków aplikacji, ale pytest by się pomylił ModuleNotFoundError: No module named 'apps'mimoDJANGO_SETTINGS_MODULE poprawnej konfiguracji.

config / settings.py:

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

biz_portal / apps / portal / apps.py:

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

config / urls.py:

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

Zmiana odniesienia aplikacji w config / settings.py się biz_portal.apps.portal.apps.PortalConfigi PortalConfig.namedo biz_portal.apps.portaldozwolonego pytest do uruchomienia (nie mam testy dla portalwidoków jeszcze), ale runserverto błąd z

RuntimeError: Klasa modelu apps.portal.models.Business nie deklaruje jawnej etykiety app_label i nie ma jej w aplikacji w INSTALLED_APPS

W końcu wyszukałem, apps.portalaby zobaczyć, co nadal używa ścieżki względnej i stwierdziłem, że config / urls.py powinien również używać biz_portal.apps.portal.urls.

jbothma
źródło
Hacki ze ścieżką względną… Zrobiły to samo. Twoje spostrzeżenia bardzo mi pomogły
zar3bski
2

Napotkałem ten błąd, gdy próbowałem wygenerować migracje dla pojedynczej aplikacji, która miała źle sformułowane migracje z powodu scalania git. na przykład

manage.py makemigrations myapp

Kiedy usunąłem to migracje, a następnie uruchomiłem:

manage.py makemigrations

błąd nie wystąpił i migracje zostały wygenerowane pomyślnie.

Cerin
źródło
Dziękuję Ci. Migracje nadal są frustrujące.
HashRocketSyntax
2

Miałem podobny problem, ale udało mi się rozwiązać mój, określając jawnie app_label za pomocą Meta Class w mojej klasie modeli

class Meta:
    app_label  = 'name_of_my_app'
Benjamin Andoh
źródło
Dzięki Benjamin! W moim projekcie Django używam Sphinx do generowania dokumentacji, a dyrektywa :: autoclass dawała błąd „app_label”, dopóki nie dodałem go do klasy Meta Modelu, tak jak sugerowałeś.
Stefan Musarra
Cieszę się, że to zadziałało
Benjamin Andoh
1

Otrzymałem ten błąd podczas próby aktualizacji mojego Django Rest Framework aplikacji do DRF 3.6.3 i Django 1.11.1.

Dla każdego innego w tej sytuacji znalazłem swoje rozwiązanie w kwestii GitHub , która polegała na usunięciu UNAUTHENTICATED_USERustawienia w ustawieniach DRF :

# webapp/settings.py
...
REST_FRAMEWORK = {
    ...
    'UNAUTHENTICATED_USER': None
    ...
}
Robin Winslow
źródło
1

Właśnie natknąłem się na ten problem i zorientowałem się, co się dzieje. Ponieważ żadna poprzednia odpowiedź nie opisała problemu tak, jak mi się przydarzyło, pomyślałem, że opublikowałbym to dla innych:

  • problem wynikał z użycia python migrate.py startapp myAppz folderu głównego mojego projektu, a następnie przenieś myApp do folderu podrzędnego z rozszerzeniem mv myApp myFolderWithApps/.
  • Napisałem myApp.models i uruchomiłem python migrate.py makemigrations. Wszystko poszło dobrze.
  • potem zrobiłem to samo z inną aplikacją, która importowała modele z myApp. Kaboom! Napotkałem ten błąd podczas makemigracji. To dlatego, że musiałem użyćmyFolderWithApps.myApp odniesienia do mojej aplikacji, ale zapomniałem zaktualizować MyApp / apps.py. Więc poprawiłem moją aplikację / apps.py, ustawienia / INSTALLED_APPS i ścieżkę importu w mojej drugiej aplikacji.
  • ale potem błąd się powtarzał: powodem było to, że miałem migracje próbując zaimportować modele z myApp z niewłaściwą ścieżką. Próbowałem poprawić plik migracji, ale doszedłem do punktu, w którym łatwiej było zresetować bazę danych i usunąć migracje, aby rozpocząć od zera.

Krótko mówiąc: - początkowo problem wynikał z niewłaściwej nazwy aplikacji w apps.py w myApp, w ustawieniach i ścieżce importu mojej drugiej aplikacji. - ale nie wystarczyło poprawienie ścieżek w tych trzech miejscach, ponieważ migracje zostały utworzone z importami odwołującymi się do niewłaściwej nazwy aplikacji. Dlatego ten sam błąd występował podczas migracji (poza tym razem z migracjami).

Więc ... sprawdź swoje migracje i powodzenia!

harrouet
źródło
1

Mam podobny błąd podczas budowania API w Django rest_framework.

RuntimeError: Klasa modelu apps.core.models.University nie deklaruje jawnej etykiety> app_label i nie ma jej w aplikacji w INSTALLED_APPS.

Odpowiedź luke_aus pomogła mi, poprawiając mój adres urls.py

z

from project.apps.views import SurgeryView

do

from apps.views import SurgeryView
Jade Dhangwattanotai
źródło
Jak dla mnie, miałem to ukryte podczas migracji. Nie jestem pewien, jak to się stało, ale usunięcie nazwy projektu / ścieżki rozwiązało problem.
Michael Thompson
1

W moim przypadku otrzymałem ten błąd podczas przenoszenia kodu z Django 1.11.11 do Django 2.2. Definiowałem niestandardową klasę pochodną FileSystemStorage. W Django 1.11.11 miałem następującą linię w models.py:

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

a później w pliku miałem definicję klasy:

class MyFileStorage(FileSystemStorage):

Jednak w Django 2.2 FileSystemStoragepodczas importowania muszę jawnie odwoływać się do klasy:

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

i voilà !, błąd znika.

Zauważ, że wszyscy zgłaszają ostatnią część komunikatu o błędzie wyrzuconego przez serwer Django. Jeśli jednak przewiniesz w górę, znajdziesz przyczynę w środku tego błędu mambo-jambo.

user2641103
źródło
1

w moim przypadku udało mi się znaleźć poprawkę i patrząc na kod wszystkich innych, może to być ten sam problem .. Po prostu musiałem dodać „django.contrib.sites” do listy zainstalowanych aplikacji w settings.py plik.

mam nadzieję, że to komuś pomoże. to mój pierwszy wkład w społeczność programistów

Jermaine Haughton
źródło
1

TL; DR: Dodanie pustego __init__.py rozwiązało problem.

Otrzymałem ten błąd w PyCharm i zdałem sobie sprawę, że mój plik ustawień w ogóle nie był importowany. Nie było oczywistego błędu mówiącego mi o tym, ale kiedy wstawiłem jakiś nonsensowny kod do settings.py, nie spowodował on błędu.

Miałem settings.py w folderze local_settings . Jednak zapomniałem dołączyć __init__.py w tym samym folderze, aby umożliwić jego import. Gdy to dodałem, błąd zniknął.

James Bradbury
źródło
1

Jeśli masz całą konfigurację, może to być po prostu bałagan związany z importowaniem. miej oko na to, jak importujesz nieprawidłowy model.

Poniższe nie będą działać from .models import Business. Zamiast tego użyj pełnej ścieżki importu:from myapp.models import Business

evanxg852000
źródło
1

Jeśli wszystko inne zawiedzie i jeśli widzisz ten błąd podczas próby importu w "konsoli Pythona" (lub "konsoli Django") PyCharm:

Spróbuj ponownie uruchomić konsolę.

To dość zawstydzające, ale zajęło mi trochę czasu, zanim zdałem sobie sprawę, że o tym zapomniałem.

Oto, co się stało:

Dodano nową aplikację, następnie dodałem minimalny model, a następnie próbowałem zaimportować model w konsoli Python / Django (PyCharm pro 2019.2). Spowodowało to doesn't declare an explicit app_labelbłąd, ponieważ nie dodałem nowej aplikacji do INSTALLED_APPS. Dodałem więc aplikację do INSTALLED_APPS, ponownie spróbowałem importować, ale nadal występuje ten sam błąd.

Przyszedłem tutaj, przeczytaj wszystkie inne odpowiedzi, ale nic nie pasowało.

W końcu dotarło do mnie, że nie zrestartowałem jeszcze konsoli Pythona po dodaniu nowej aplikacji do INSTALLED_APPS.

Uwaga: niepowodzenie ponownego uruchomienia konsoli PyCharm Python po dodaniu nowego obiektu do modułu jest również świetnym sposobem na uzyskanie bardzo mylącego ImportError: Cannot import name ...

djvg
źródło
Dzięki za tę odpowiedź, zapomniałem .env
pobrać
1

O ... M ... G Też otrzymywałem ten błąd i spędziłem na nim prawie 2 dni i teraz w końcu udało mi się go rozwiązać. Szczerze ... błąd nie miał nic wspólnego z tym, z czym był problem. W moim przypadku była to prosta kwestia składni. Próbowałem uruchomić samodzielny moduł Pythona, który używał niektórych modeli django w kontekście django, ale sam moduł nie był modelem django. Ale stwierdziłem, że klasa jest niewłaściwa

zamiast mieć

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

ja robiłem

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

co jest oczywiście błędne. Wiadomość jest tak myląca, że ​​nie mogłem się powstrzymać, ale myślę, że to jakiś problem z konfiguracją lub po prostu niewłaściwym używaniem django, ponieważ jestem w tym bardzo nowy.

Podzielę się tym tutaj dla kogoś nowicjusza, ponieważ przechodząc przez te same głupoty, mam nadzieję, że rozwiążę ich problem.

Rafael Santos
źródło
0

Otrzymałem ten błąd po tym, jak przeniosłem SECRET_KEYdo ściągania ze zmiennej środowiskowej i zapomniałem go ustawić podczas uruchamiania aplikacji. Jeśli masz coś takiego w swoimsettings.py

SECRET_KEY = os.getenv('SECRET_KEY')

następnie upewnij się, że faktycznie ustawiasz zmienną środowiskową.

ameier38
źródło
0

Najprawdopodobniej masz import zależny .

W moim przypadku użyłem klasy serializatora jako parametru w moim modelu, a klasa serializatora korzystała z tego modelu: serializer_class = AccountSerializer

from ..api.serializers import AccountSerializer

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

A w pliku „serializatory”:

from ..models import Account

class AccountSerializer(serializers.ModelSerializer):
    class Meta:
        model = Account
        fields = (
            'id', 'email', 'date_created', 'date_modified',
            'firstname', 'lastname', 'password', 'confirm_password')
    ...
Dashko Leonid
źródło
0

Otrzymałem ten błąd dzisiaj i wylądowałem tutaj po googlowaniu. Żadna z istniejących odpowiedzi nie wydaje się odpowiadać mojej sytuacji. Jedyne, co musiałem zrobić, to zaimportować model z mojego __init__.pypliku na najwyższym poziomie aplikacji. Musiałem przenieść import do funkcji za pomocą modelu.

Wydaje się, że Django ma dziwny kod, który może zawieść w tak wielu różnych scenariuszach!

zapakowane
źródło
0

Ten błąd też dzisiaj wyskoczył. Komunikat odwołuje się do określonej aplikacji moich aplikacji w INSTALLED_APPS . Ale w rzeczywistości nie miało to nic wspólnego z tą konkretną aplikacją. Użyłem nowego wirtualnego środowiska i zapomniałem zainstalować kilka bibliotek, których użyłem w tym projekcie. Po zainstalowaniu dodatkowych bibliotek działało.

Black Hole Sun
źródło
0

Dla użytkowników PyCharm: wystąpił błąd podczas korzystania z nie „czystej” struktury projektu.

Był:

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

Teraz:

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

Tutaj jest wiele dobrych rozwiązań, ale myślę, że przede wszystkim powinieneś wyczyścić strukturę swojego projektu lub dostroić ustawienia PyCharm Django przed ustawieniem DJANGO_SETTINGS_MODULE zmiennych i tak dalej.

Mam nadzieję, że to komuś pomoże. Twoje zdrowie.

Pavel Druzhinin
źródło
-1

Problem w tym, że:

  1. Dokonałeś modyfikacji w pliku modeli, ale nie dodałeś ich jeszcze do bazy danych, ale próbujesz uruchomić serwer uruchomieniowy manage.py w języku Python.

  2. Uruchom Python manage.py makemigrations

  3. Migracja Python manage.py

  4. Teraz Python manage.py runerver i wszystko powinno być w porządku.

Ken Edem
źródło