Błąd z niezaładowanymi aplikacjami django

0

Witam, mam jakiś dziwny błąd w aplikacji. Mam 3 aplikacje, wszystkie maja rejestracje w apps. I po dodaniu ich do settings głównej aplikacji klikam runserver i wyskakuje mi coś takie
"django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet"
Przyznam że pierwszy raz spotykam się z tym błędem i nie bardzo wiem jak to rozwiązać. To nie jest moja pierwsza stronka a póki co rozbudowanie stronki jest mniej więcej na poziomie "Rób wszystko według schematu" i nie wiem skąd coś takiego.

0

Próbujesz gdzieś korzystać z django i funkcjonalności django w momencie gdy nie jest ono jeszcze załadowane.

1

Kolego zasada nr1: Myśl co robisz ;)

To nie jest moja pierwsza stronka a póki co rozbudowanie stronki jest mniej więcej na poziomie "Rób wszystko według schematu" i nie wiem skąd coś takiego.

Póki co to wygląda jak właśnie robienie pierwszej stronki wg schematu którego się nie rozumie :]. No to lecimy

**Task.init.py: **
Wywal from .models import Task. - po co tam to wrzuciles? Do wywalenia

Task.models.py:
Brak max_length w charfiled, zmiast tego wpisales tylko "50", powinno byc title = models.CharField(max_length=50)

grade.models.py - złe importy


from recruitersyte.person.models import Candidate, Recruiter
from recruitersyte.Task.models import Task

Powinno być

from person.models import Candidate, Recruiter
from Task.models import Task

person.init.py:
usuń z init from .models import Candidate, Recruiter - kolejny raz po co tam to wrzuciłeś?

recruiterstyle.settings.py - źle zainicjowane apki w settingsach, po co wrzucasz tam configi?

Jest:

INSTALLED_APPS = [
    'person.apps.PersonConfig',
    'grade.apps.GradeConfig',
    'Task.apps.TaskConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

powinno byc:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'person',
    'grade',
    'Task',
]

Apki customowe powinny być pod wbudowanymi apkami djangowymi wrzucane. Trzymaj sie jednej konwencji nazywania apek, raz z dużej raz z małej to nie ma sensu.

0

W max charfield fakt. Zapomniałem.
Co do pozostałych.
Importuje pliki do inita z tego względu że django wywala błąd że te pliki nie istnieją podczas importowania do innych apek. (nie wiem, powinny ale nie chcą. Kiedyś usłyszałem że takie rozwiązanie niweluje problem. Działa. Problem solved)
Importy w ogóle po najnowszej aktualizacji pycharma wywaliło. Próbowałem wyciągnąć modele z samego person/task ale nie znajdowało plików, ale podanie pełnej ścieżki pozwoliło wyszukać plik.
Wrzucanie apek do systemu według kolejności w zasadzie nie powinno wywalać systemu. To tylko dobra praktyka.
Co do nazewnictwa apek, akurat ten Task z dużej to taki odruch

0

Importuje pliki do inita z tego względu że django wywala błąd że te pliki nie istnieją podczas importowania do innych apek.
Działa. Problem solved

Rozumiem że chodzi Ci o modele, importowanie w init jest całkowicie zbędne wywal to. Są szczególne wyjątki kiedy w ogóle powinieneś rozważać dodawanie cokolwiek do init. Ten case do nich nie należy.

Importy w ogóle po najnowszej aktualizacji pycharma wywaliło. Próbowałem wyciągnąć modele z samego person/task ale nie znajdowało plików, ale podanie pełnej ścieżki pozwoliło wyszukać plik.

Co w ogóle ma pycharm do importów?:D Jeśli chcesz importować modele do innej apki to robisz to tak:
from person.models import Model i tyle. Nie mów że nie działa:)

Wrzucanie apek do systemu według kolejności w zasadzie nie powinno wywalać systemu. To tylko dobra praktyka.

Ta dobra praktyka nie bierze się z nikąd, o ile faktycznie kolejność nie powinna mieć wiekszego znaczenia przynajmniej przy najnowszych wersjach Django, to ciągle istnieją pewne zależności, przykładem może być django.contrib.auth i zewnętrzna apka do autoryzacji również oparta na django userze. Są sytuacje że jedna potrafi nadpisywać działanie drugiej w zależności od kolejności. Więc ta "tylko" dobra praktyka nie wzięła się z nikąd.

0

Okazuje się że pycharma wywala błąd podczas importu, jednak działa. Nie wiem co się tam dzieje. Ale udało mi się to jakoś uruchomić.
Fakt dobra praktyka nie bierze się znikąd, ale najczęściej jest pozostałością strych wersji, ew. Czytelność kodu dla wszystkich. Przy 200apkach zrobiłby się bałagan. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1