Aplikace mimo root projektu?

12 views
Skip to first unread message

MirekZv

unread,
Feb 19, 2021, 9:49:06 AM2/19/21
to django-cs
Zdravím. Tak už vás asi štvu, že sem furt postuju nějaké nesmysly. Nebo je to dobře, oživit tuhle google grupu?

Kam umísťujete Django aplikace?
Nahňácáte jich 10 do rootu projektu (standardní Django bordýlek)
nebo na ně máte extra adresář, třeba apps/ nebo applications/ ?

Já jsem si zkusil udělat ten extra adresář, ale zdá se mi, že to opravdu není dobrý nápad, co myslíte?
Mám s tím furt potíže a nemůžu najít nikde žádný checklist, co by člověk měl mít uděláno, aby to běhalo.

Zatím jsem udělal toto:
- prázdný soubor apps/__init__.py
- INSTALLED_APPS: 'apps.friends', 'apps.events'
- AppConfig: name='apps.friends', label='friends'
- sys.path.append(str(BASE_DIR / 'apps'))


Potíž mám s importy mezi aplikacemi:
from ..friends.models import Friend : ImportError: attempted relative import beyond top-level package (to nepřekvapí)
from .friends.models import Friend : ModuleNotFoundError: No module named 'apps.events.friends'
RuntimeError: Model class friends.models.Finger doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
from apps.friends.models import Friend : RuntimeError: Model class events.models.EventType doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.   # EventType je první model v aplikaci events

Tak co, mám ještě něco zkoušet,
nebo mám radši hodně rychle pokorně vycouvat z tohoto laviniště?

Kromě toho asi je blbé mít někde v kódu apps. a apps/, kdyby člověk třeba časem usoudil, že tu aplikaci zbuilduje, že?

Zdravím, Mirek

Asi si sem přidám slogan:
Django: Daruji Ti problém.

Honza Král

unread,
Feb 19, 2021, 10:01:28 AM2/19/21
to djan...@googlegroups.com
On Fri, Feb 19, 2021 at 3:49 PM MirekZv <mirek....@gmail.com> wrote:
Zdravím. Tak už vás asi štvu, že sem furt postuju nějaké nesmysly. Nebo je to dobře, oživit tuhle google grupu?

Kam umísťujete Django aplikace?
Nahňácáte jich 10 do rootu projektu (standardní Django bordýlek)

Asi odpovim na prvni dve otazky dohromady - ozivit grupu je dobre, ptat se je dobre, ale trochu se zamysli nad tim, ceho chces docilit. Ja zcela osobne. jsem velmi blizko toho zacit tve otazky ignorovat protoze nemam zajem stale cist komentare nekoho o vecech jako je "standardni Django Bordylek" nebo kdo si stezuje, ze admin interface je pro adminy a ne pro verejnost pote co ho na to lidi upozorni.
 
nebo na ně máte extra adresář, třeba apps/ nebo applications/ ?

pokud je to aplikace ktera jse specificka jen pro jeden projekt, dam ji do toho projektu, pokud by mela byt vyuzitelna pro vice projektu, dam ji do samostatneho repa jako uplne samostatnou vec kterou budu instalovat a importovat, napriklad:

projekt ktery by resil hypotetickou konferenci:

pycon
    cfp
    schedule

Samostatne aplikace ktere bych v tom projektu take pouzil:

calendar
mailinglist
....


Já jsem si zkusil udělat ten extra adresář, ale zdá se mi, že to opravdu není dobrý nápad, co myslíte?
Mám s tím furt potíže a nemůžu najít nikde žádný checklist, co by člověk měl mít uděláno, aby to běhalo.

tohle totiz neni otazka na django, ale standardni python baliky, jak je nejlepe strukturovat a rozpadnout.

Zatím jsem udělal toto:
- prázdný soubor apps/__init__.py
- INSTALLED_APPS: 'apps.friends', 'apps.events'
- AppConfig: name='apps.friends', label='friends'
- sys.path.append(str(BASE_DIR / 'apps'))


Potíž mám s importy mezi aplikacemi:
from ..friends.models import Friend : ImportError: attempted relative import beyond top-level package (to nepřekvapí)
from .friends.models import Friend : ModuleNotFoundError: No module named 'apps.events.friends'
RuntimeError: Model class friends.models.Finger doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
from apps.friends.models import Friend : RuntimeError: Model class events.models.EventType doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.   # EventType je první model v aplikaci events

Tak co, mám ještě něco zkoušet,
nebo mám radši hodně rychle pokorně vycouvat z tohoto laviniště?

Kromě toho asi je blbé mít někde v kódu apps. a apps/, kdyby člověk třeba časem usoudil, že tu aplikaci zbuilduje, že?

Obecne neni treba se bat refactoringu. Pokud se rozhodnes neco zmenit, napriklad vzit aplikaci ktera byla doted jen v jednom projektu a ted bude samostatna, tak je to vetsinou otazka na cca hodinu ji odevsud vykopat a pak pustit testy aby ses ubezzpecil, ze vse funguje.

Zdravím, Mirek

Asi si sem přidám slogan:
Django: Daruji Ti problém.

Darovanemu koni...
 

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/d511ea52-9b96-4485-bf37-ef3f377d7b07n%40googlegroups.com.

MirekZv

unread,
Feb 19, 2021, 10:35:18 AM2/19/21
to django-cs
@Honza

S darovaným koněm je to stoprocentně pravda. Toho jsem si vědomý a když si tady tak držkuju, tak to neznamená, že nejsem za Django vděčný.

Za ten filozofický nadhled na věc určitě díky, z toho nějaké poučení vezmu.

Ještě bych potřeboval, kdybych se dověděl, co tedy dělám špatně, proč mi nejdou ty importy žádným způsobem.
Lámu to už skoro celý den, máme tady dokonce jiný projekt, kde se to používá, ale ani tak nejsem schopný zatím najít chybu.
Hodinovému refactoringu se tedy s dovolením lehce pousměju (abych si nezapomněl zadržkovat).

Dne pátek 19. února 2021 v 16:01:28 UTC+1 uživatel honza...@gmail.com napsal:

MirekZv

unread,
Feb 19, 2021, 10:42:29 AM2/19/21
to django-cs
Sorry, Honzovi i všem, moje chyba,
samozřejmě jsem tam někde zapomněl: from apps.friends
a měl jsem tam: from friends
... nejsem na to talent :(
Dne pátek 19. února 2021 v 16:35:18 UTC+1 uživatel MirekZv napsal:
Reply all
Reply to author
Forward
0 new messages