Błąd z niezaładowanymi aplikacjami django

Odpowiedz Nowy wątek
2019-03-30 20:02

Rejestracja: 1 rok temu

Ostatnio: 8 miesięcy temu

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.

Pozostało 580 znaków

2019-03-31 01:16

Rejestracja: 4 lata temu

Ostatnio: 8 godzin temu

0

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

Chyba tylko widoki jeszcze nie są stworzone. Ale zdaje mi się że bez nich powinno się odpalić(tylko nic by się nie pokazało) . Bo tak inaczej to nie wiem czego miałoby brakować do startu. - szopen469 2019-03-31 01:20
pokaż nam kod np. na GH to zobaczymy : ) - grski 2019-03-31 10:50

Pozostało 580 znaków

2019-03-31 16:12

Rejestracja: 1 rok temu

Ostatnio: 8 miesięcy temu

cmd
2019-03-31 16:40
cmd

Rejestracja: 4 lata temu

Ostatnio: 14 minut temu

Lokalizacja: Warszawa

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.

edytowany 3x, ostatnio: cmd, 2019-03-31 16:41

Pozostało 580 znaków

2019-03-31 17:08

Rejestracja: 1 rok temu

Ostatnio: 8 miesięcy temu

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

Pozostało 580 znaków

cmd
2019-03-31 18:54
cmd

Rejestracja: 4 lata temu

Ostatnio: 14 minut temu

Lokalizacja: Warszawa

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.

edytowany 3x, ostatnio: cmd, 2019-03-31 18:58

Pozostało 580 znaków

2019-03-31 19:01

Rejestracja: 1 rok temu

Ostatnio: 8 miesięcy temu

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. ;)

Pozostało 580 znaków

Odpowiedz

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