Ještě, kdyby to někdo taky potřeboval implementovat (přestože jsme se dozvěděli, že k tomu Django není určeno) přidám jedno vhodné řešení: *(3) použít django-baton.*
Dne čtvrtek 11. února 2021 v 10:38:05 UTC+1 uživatel MirekZv napsal: > PS: weppy ~ emmett ? > > Dne středa 10. února 2021 v 19:40:26 UTC+1 uživatel MirekZv napsal: > >> Abych pořád jen nefňukal, že Weppy je polomrtvé a Cheetah opovrhovaný, >> ale abych skončil trochu konstruktivně: >> V soutěži minimalizace zla se umístila tato řešení: >> >> *(1) menší flexibilita, menší náchylnost na problémy při upgradu Djanga* >> ve vlastní aplikaci: admin/index.html >> ``` >> {% extends "admin/index.html" %} >> {% block content %} >> <div id="content-main"> >> {% include 'admin/before_app_list.html' %}{#mz#} >> {% include "admin/app_list.html" with app_list=app_list >> show_changelinks=True %} >> </div> >> {% endblock %} >> ``` >> ve vlastní aplikaci: admin/nav_sidebar.html >> {% load i18n %} >> <button class="sticky toggle-nav-sidebar" id="toggle-nav-sidebar" >> aria-label="{% translate 'Toggle navigation' %}"></button> >> <nav class="sticky" id="nav-sidebar"> >> {% include 'admin/before_app_list.html' %}{#mz#} >> {% include 'admin/app_list.html' with app_list=available_apps >> show_changelinks=False %} >> </nav> >> >> *(2) větší flexibilita, větší náchylnost na problémy při upgradu Djanga* >> ve vlastní aplikaci: admin/app_list.html >> nedědit/nepřetěžovat, ale upravit podle potřeby >> >> Dne středa 10. února 2021 v 18:45:24 UTC+1 uživatel MirekZv napsal: >> >>> PS: >>> Potíž je, že tím předchozím postupem nejen nelze i18n/trans, ale nelze >>> ani vsadit do html jakýkoli string, který bych si připravil předem. >>> Leda můžu v template/base.py místo `raise self.error(token, '%r must be >>> the first tag in the template.' % node,)` dát `pass`, >>> aby Django neprovádělo své přechytralé kontraproduktivní kontroly. >>> Jenže to už je zase patchování Djanga. >>> Ach jo, zlatej Cheetah. >>> >>> Dne středa 10. února 2021 v 18:15:18 UTC+1 uživatel MirekZv napsal: >>> >>>> Mezitím mám jedno řešení. >>>> Dokumentace Djanga je "doslovně" pravdivá: If you use {% extends %} in >>>> a template, it must be the first template tag in that template. >>>> To skutečně znamená, že extends může předcházet (nikoli následovat) >>>> html kód. >>>> To by mi celkem vyhovovalo. Jediné, co mě štve je, že nemůžu použít >>>> nejen {% include ... %}, ale ani i18n/trans :( >>>> Příklad viz obrázky.[image: rap1.png][image: rap2.png] >>>> >>>> Dne středa 10. února 2021 v 18:10:44 UTC+1 uživatel MirekZv napsal: >>>> >>>>> Možná jsem Tě přesně nepochopil. >>>>> Já umím extendovat admin/app_list.html, jenže je mi to k..h..u, >>>>> protože ta v sobě nemá žádný {% block .... %} - takže proč ji extendovat? >>>>> Ale možná jsi myslel includovat. To by dávalo smysl. >>>>> >>>>> A pak taky nevím, jestli to, co píšeš, řeší, aby moje přidané položky >>>>> byly všude: 1) Na hlavní stránce admina, 2) Na stránkách aplikací, 3) V >>>>> sidebar menu během editace. >>>>> >>>>> >>>>> >>>>> Dne středa 10. února 2021 v 17:29:32 UTC+1 uživatel honza...@gmail.com >>>>> napsal: >>>>> >>>>>> app_list.html neni urcena k pretezovani, proto na to neni zarizena. >>>>>> Nejjednodussi cesta je: >>>>>> >>>>>> nastav si custom sablonu na index_template (0). Ve sablone (ktera se >>>>>> nebude jmenovat admin/index.html) extenduj index.html a prepis {% block >>>>>> content %} kde misto admin/app_list.html naimportujes jinou sablonu, >>>>>> ktera >>>>>> byde extendovat admin/app_list.html >>>>>> >>>>>> >>>>>> 0 - >>>>>> https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.AdminSite.index_template >>>>>> >>>>>> Honza Král >>>>>> E-Mail: honza...@gmail.com >>>>>> Phone: +420 606 678585 <+420%20606%20678%20585> >>>>>> >>>>>> >>>>>> On Wed, Feb 10, 2021 at 5:22 PM MirekZv <mirek....@gmail.com> wrote: >>>>>> >>>>>>> Django mi zas dává do těla. >>>>>>> >>>>>>> Snažím se přidat menu do Django admina. >>>>>>> Ačkoli lze najít plno návodů, zdá se mi, že všechno jsou hrozné >>>>>>> hacky a přestávají fungovat s nejbližší novější verzí Djanga. >>>>>>> >>>>>>> Takže by se mi zdálo, že nejbezpečnější by bylo, >>>>>>> přidat si svoje vlastní menu položky před to, co generuje šablona >>>>>>> admin/app_list.html. >>>>>>> >>>>>>> Ta totiž generuje seznam aplikací (skupiny menu) a modelů v nich >>>>>>> (položky skupin). >>>>>>> Tak bych si tam předhodil jednu skupinu se svými odkazy. >>>>>>> A fungovalo by to ve všech scénářích, kde se to volá, ať už je to >>>>>>> hlavní obsah stránky, nebo to postranní menu (bavím se o Dj 3.1). >>>>>>> >>>>>>> JENŽE: >>>>>>> >>>>>>> Když předřadím svoji aplikaci před django.contrib.admin, udělám v ní >>>>>>> také admin/app_list.html, tak běží ten můj přednostně a pokud je v něm >>>>>>> {% >>>>>>> extends 'admin/app_list.html' %}, tak volá následně tu originál >>>>>>> djangovou a >>>>>>> nahrazuje v ní bloky , které předefinuji. >>>>>>> >>>>>>> To funguje a je to snad i popsáno v dokumentaci. >>>>>>> Jenže v té originál nejsou žádné bloky. Jsou líní to aspoň jedním >>>>>>> blokem owrapovat,.aby šlo předchozí použít. >>>>>>> >>>>>>> Ale když místo toho dám {% include 'admin/app_list.html' %}, >>>>>>> tak nejde na tu djangovou originální, ale volá dokola stále tu moji >>>>>>> (nekonečná rekurze). >>>>>>> >>>>>>> Je nějaká možnost jak mít svoji templatu pod jménem app_list.html a >>>>>>> volat z ní něco svého + ten originální obsah? >>>>>>> >>>>>>> Aniž bych musel patchovat ten originální Django kód a jako kretén to >>>>>>> upravovat pokaždé, když vyjde nová verze Djanga?? >>>>>>> >>>>>>> -- >>>>>>> -- >>>>>>> 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/07164eea-9a91-4796-abd5-94eaabc3454bn%40googlegroups.com >>>>>>> >>>>>>> <https://groups.google.com/d/msgid/django-cs/07164eea-9a91-4796-abd5-94eaabc3454bn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- -- E-mailová skupina django-cs@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+unsubscr...@googlegroups.com. Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/6153b105-f456-4a78-9fb7-05519f6d912bn%40googlegroups.com.