konfigurace aplikace, app_label, apod.

13 views
Skip to first unread message

MirekZv

unread,
Mar 12, 2021, 7:59:56 AM3/12/21
to django-cs
Mohl bych požádat někoho o kontrolu, případně i o vysvětlení?

Jedna z dalších obtížných Django věcí *) je konfigurace aplikace.

Dejme tomu, že připojuji aplikaci aausers.

Řekl bych, že
- v INSTALLED_APPS můžu mít buď `aausers` nebo `aausers.apps.AAUsersConfig`,
- __init__.py aplikace bych měl mít: `default_app_config = 'aausers.apps.AAUsersConfig'` (a to možná nebude nutné od Dj 3.2?)
- v apps.py bych měl mít AAUsersConfig třídu nějak takto:
  from django.apps import AppConfig
  from django.utils.translation import gettext_lazy as _
  class AAUsersConfig(AppConfig):
      name = 'aausers'
      label = 'aausers'
      verbose_name = _('Users')

Zdá se mi, že pak to docela uspokojivě funguje a moc se nenaráží v různých "na hraně" situacích.

Co třeba nevím je:
1) Co je ten `app_label` - pojem, který se rád vyskytuje v chybových hláškách - to je totéž jako `label`?
2) jaký je rozdíl mezi name=.. a label=..? Mohou se lišit? Kde se pak které používá?
3) mám pocit, že s tím souvisí i ta (pro mě záhadná) syntaxe include(), např. `include(('aausers.urls', 'aausers'), namespace='aausers')` - co z toho je `label` a co `name`? Nemůžu to v dokumentaci najít.
4) k čemu by aplikaci bylo, aby měla více Configů? Aby se dala zapnout do víc různých projektů a třeba aliasovat její jméno?

*) všimněte si, jak už jste mě naučili se vyjadřovat uctivě, až poníženě
Reply all
Reply to author
Forward
0 new messages