@cisar: Já tomu rozumím a snad to i chápu jako přínosné. Co by mi ale připadalo jako správné, dát to formou důrazného doporučení. Použil sis to pro něco jiného než pro staff, tak se nediv, pokud jsi nedomyslel všechny konsekvence, byla to tvoje úvaha. Ale natvrdo to zablokovat jen pro is_staff, znemožnit to samoúčelnou (jasně: oponent řekne že účelnou) validací, která není proto, aby se software nezhroutil nebo nedostal do nekonzistentního stavu, ale jen proto, aby vývojář, který má u zákazníka trochu jinou konfiguraci uživatelů než v redakci nějakého žurnálu, to nemohl použít, i když by to perfektně chodilo, mi přijde jako zvěrstvo. Koncipovat menu tak, aby se nemohlo měnit (spíš tedy rozšiřovat) mi přijde jako zvěrstvo. [ono to tak v reálu snad není, snad to bylo jen v této diskuzi malinko neštastně řečeno] Kromě toho, že by i sám vývojář mohl mít právo myslet, tak určitě ten zákazník, který do toho vleze, řekne: Prosím Tě, je to paráda, jen mi ještě do menu přidej tyto 2 volby, když už tady to menu je. A vy mu jako budete říkat (a budete za debila), že sice tomu tak úplně nerozumíte proč, ale určitě by to nebylo správné, protože chytří lidi rozhodli, že doplňovat další položky do menu je blbost?
Dne pátek 12. února 2021 v 21:52:54 UTC+1 uživatel cisar...@gmail.com napsal: > Ahoj, > nemuzu si pomoct, ale pripada mi, ze jde spis o nepochopeni podstaty > django admina. Je to skvely nastroj pro nahlizeni do struktury dat a dava > moznost urcitych modifikaci, ale primarne pro vnitrni potrebu. > V dokumentaci v podstate pisou, ze pokud chce clovek neco vic a nevejde se > danych mantinelu, je nacase si napsat vlastni interface a s tim musim > rozhodne souhlasit. > Pokud clovek vyslovene nechce psat neco vlastniho a rad by zmenit vzhled > nebo mel vice moznosti, tak bych ho odkazal na projekty jako: > https://github.com/django-admin-tools/django-admin-tools > https://djangosuit.com/ > > > > pá 12. 2. 2021 v 16:42 odesílatel MirekZv <mirek....@gmail.com> napsal: > >> Honza zatím mlčí, odpovím si sám. >> Samozřejmě, že admin/app_list.html se volá na 2 místech. >> Jedno místo popisuje Honza - to je "vhodné k přetěžování". >> Podruhé v nav_sidebar.html, tam opět žádný blok není, neboli další >> šablona, která "není určena k přetěžování". >> Ostatně, kdykoli když slyším slovo "přetěžování", tak už je mi jasné, že >> je něco špatně. >> Takže závěr: Django je jako vždy geniální, já jsem zase ten blbec, co ho >> chce použít k něčemu, k čemu není určeno. >> (sorry za tu mírnou jedovatost, já to tak nemyslím, jen toho mám trochu >> plné zuby) >> > 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 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/f5b74f0f-b012-476a-bc7f-e962447adbe8n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/django-cs/f5b74f0f-b012-476a-bc7f-e962447adbe8n%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/78f9cb2e-8379-4960-931d-4d4e9e188850n%40googlegroups.com.