Udělal jsem to takhle, musí to pochopitelně být v aplikaci, která je předřazená v INSTALLED_APPS před django.contrib.admin. `templates/admin/base.html`: ``` {% extends 'admin/base.html' %} {% block footer %} {{ block.super }} <script> ($ || django.jQuery)('a.delete-related, a.change-related').hide(); </script> {% endblock footer %} ``` Dne pátek 19. února 2021 v 15:41:25 UTC+1 uživatel cisar...@gmail.com napsal:
> @star...@gmail.com :D komu neni rady, tomu neni pomoci. > > pá 19. 2. 2021 v 12:26 odesílatel starenka . <star...@gmail.com> napsal: > >> ¯\_(ツ)_/¯ >> --- >> In Perl you shoot yourself in the foot, but nobody can understand how you >> did it. Six months later, neither can you. | print 'aknerats'[::-1] >> >> >> On Fri, Feb 19, 2021 at 11:08 AM MirekZv <mirek....@gmail.com> wrote: >> >>> Díky. >>> Klidně spím, protože si Django nenechávám přerůst přes hlavu. Je to >>> přece jen taková hra. >>> >>> Ty Vaše návrhy si cením, ale zdají se mi mimo (je možné, že jim >>> nerozumím). >>> Já nepotřebuju bránit smazat osobu. Já potřebuju zabránit mazání osoby >>> JEN během vyplňování něčeho naprosto jiného (a navíc křížkem, o kterém >>> vůbec není jasné, že se chystá provést právě toto). >>> Taky nepotřebuju to řešit na úrovni každého Admin nebo každého Model. >>> Ten problém je obecný, všude v adminu. Potřebuju 1 nastavení nebo 2 řádky >>> kódu a zlikvidovat ten nesmysl. Takže patch v templatě formou Javascriptu >>> bude asi nejlepší. >>> >>> >>> Dne pátek 19. února 2021 v 10:44:51 UTC+1 uživatel Ing. Vladimir napsal: >>> >>>> pripadne zakazat vsechno, Mixin pro admin classu :-) >>>> >>>> class NonEditableMixin: >>>> def has_delete_permission(self, request, obj=None): >>>> return False >>>> >>>> def has_change_permission(self, request, obj=None): >>>> return False >>>> >>>> def has_add_permission(self, request, obj=None): >>>> return False >>>> >>>> can_delete = False >>>> >>>> On Fri, Feb 19, 2021 at 10:42 AM starenka . <star...@gmail.com> wrote: >>>> >>>>> A nastav userum spravne prava na modely >>>>> >>>>> On Fri, Feb 19, 2021, 10:41 starenka . <star...@gmail.com> wrote: >>>>> >>>>>> Nebo si udelej vlastni form na ten inline... >>>>>> >>>>>> On Fri, Feb 19, 2021, 10:38 Vladimir Linhart <vladimir...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> nebo >>>>>>> >>>>>>> readonly_fields >>>>>>> >>>>>>> >>>>>>> On Wed, Feb 17, 2021 at 10:35 PM starenka . <star...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Tak si tam dej raw_id a budes klidne spat :) >>>>>>>> >>>>>>>> On Wed, Feb 17, 2021, 22:15 MirekZv <mirek....@gmail.com> wrote: >>>>>>>> >>>>>>>>> PS: ono tedy i ten Edit je příliš nebezpečný. Nějakej Lojza si to >>>>>>>>> může otevřít a přepsat Lenku na Martina. Vždycky jsem si myslel, že >>>>>>>>> při >>>>>>>>> návrhu ovládání by měly být odlišeny (a tady by to mělo velké >>>>>>>>> opodstatnění) >>>>>>>>> plnokrevná editace od opravy překlepu. >>>>>>>>> No ale to bych chtěl moc. >>>>>>>>> Nicméně asi bych nejradši všude v adminu znepřístupnil tu editaci >>>>>>>>> i rušení (přes ForeignKey odkazovaného) záznamu. >>>>>>>>> >>>>>>>>> Dokážu to jen tím Javascriptem (což velká věda nebude) nebo to >>>>>>>>> můžu někde nastavit? >>>>>>>>> >>>>>>>>> Dne středa 17. února 2021 v 22:08:54 UTC+1 uživatel MirekZv napsal: >>>>>>>>> >>>>>>>>>> Podívejte se na obrázek, jsou tam dva inliny a na začátku každého >>>>>>>>>> z nich popup s vyplněným jménem Lenka. >>>>>>>>>> >>>>>>>>>> Jak se ty popupy liší? jeden má "rušící křížek", druhý ho nemá. >>>>>>>>>> Jak se liší návrh databáze? Jedno ForeignKey připouští >>>>>>>>>> null/blank=True, druhé ho nepřipouští. >>>>>>>>>> >>>>>>>>>> To null se dá samozřejmě nastavit manipulací popupu pomocí např. >>>>>>>>>> myši. >>>>>>>>>> >>>>>>>>>> Takže nepřekvapuje, že ten křížek dělá něco jiného. >>>>>>>>>> Zruší osobu Lenka (s celou soustavou CASCADE deleting záznamů). >>>>>>>>>> >>>>>>>>>> Když nad tím budeme přemýšlet, nějakou stopu logiky najdeme: >>>>>>>>>> V obou případech by mohlo být legitimní osobu Lenka zrušit (i >>>>>>>>>> když proč takovou čistku zrovna při add/edit úplně jiného záznamu?). >>>>>>>>>> Ovšem >>>>>>>>>> ve druhém případě bychom místo té zrušené musely do ForeignKey >>>>>>>>>> vybrat >>>>>>>>>> nějakou jinou osobu (která už ani nemusí v tabulce být, Lenka může >>>>>>>>>> být >>>>>>>>>> poslední). >>>>>>>>>> >>>>>>>>>> Ovšem i když jako programátor tyhle souvislosti nahlédneme, >>>>>>>>>> stejně je to trochu příliš překombinované. A jak to má pochopit >>>>>>>>>> ubohý >>>>>>>>>> uživatel? >>>>>>>>>> >>>>>>>>>> Neboli se ptám: >>>>>>>>>> Jak můžu tuhletu nebezpečnou featuru zakázat? >>>>>>>>>> Dokážu to jedině Javascriptem nebo jsem přehlédnul nějaké >>>>>>>>>> nastavení? >>>>>>>>>> >>>>>>>>>> Díky pokud někdo poradí ... >>>>>>>>>> [image: broken_integrity.png] >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> -- >>>>>>>>> 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/f3252964-735b-4d30-bc7c-1618d11c3471n%40googlegroups.com >>>>>>>>> >>>>>>>>> <https://groups.google.com/d/msgid/django-cs/f3252964-735b-4d30-bc7c-1618d11c3471n%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/CA%2B7MNVqSnh53sDOSmixa-cQYDZuH%2BnWa%3DnXTPfYTcz4OuuymMg%40mail.gmail.com >>>>>>>> >>>>>>>> <https://groups.google.com/d/msgid/django-cs/CA%2B7MNVqSnh53sDOSmixa-cQYDZuH%2BnWa%3DnXTPfYTcz4OuuymMg%40mail.gmail.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/CAFrZPmT6_bG_fp7K9%2BuyBS9YmEkJBxwTG6ENYBc7jeQ9-H6O4A%40mail.gmail.com >>>>>>> >>>>>>> <https://groups.google.com/d/msgid/django-cs/CAFrZPmT6_bG_fp7K9%2BuyBS9YmEkJBxwTG6ENYBc7jeQ9-H6O4A%40mail.gmail.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/CA%2B7MNVonjBs5%2B%2BjawdReKxN5Oy05Nd-VJj6Ad_uDLpSj2eOOxQ%40mail.gmail.com >>>>> >>>>> <https://groups.google.com/d/msgid/django-cs/CA%2B7MNVonjBs5%2B%2BjawdReKxN5Oy05Nd-VJj6Ad_uDLpSj2eOOxQ%40mail.gmail.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/1ba1556c-f98b-4c74-b881-ffcb8c933935n%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/django-cs/1ba1556c-f98b-4c74-b881-ffcb8c933935n%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/CA%2B7MNVqAUj0H6nTgiHmKYAo5LTHJdXJWHWovJGpuE7yrmnjEbQ%40mail.gmail.com >> >> <https://groups.google.com/d/msgid/django-cs/CA%2B7MNVqAUj0H6nTgiHmKYAo5LTHJdXJWHWovJGpuE7yrmnjEbQ%40mail.gmail.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/184d5d5a-62e2-422d-8c8b-36bf1c02c77cn%40googlegroups.com.