Ahoj,

pokud je m2m a through, tak bud musis v adminu pridat ten propojovaci model
a editovat jeho zaznamy (coz nemusi byt pohodlne) anebo bude nutne pouzit
InlineModelAdmin, protoze ty dodatecne fieldy musi byt mozne nejak
editovat. Tohle myslim bude to, co hledas -
https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#working-with-many-to-many-models


S pozdravom,
Martin Tiršel,
tel.:
+421 948 199 406 (O2 SR)
+420 776 790 511 (Vodafone CR)

2017-12-21 11:09 GMT+01:00 Jan Bednařík <[email protected]>:

> Ahoj,
>
> a jak by měl ten Select s trough fungovat? V tom trough modelu může být
> libovolné množství fieldů, které v selectu nemáš jak vyplnit. Pokud
> potřebuješ trough model s fieldy navíc, tak to musíš hold plnit v adminu
> toho trough modelu.
>
> Honza
>
>
>
> 2017-12-20 18:28 GMT+01:00 MirekZv <[email protected]>:
>
>> Díky moc za informace.
>> No, nepůjde mi to tak rychle, jak jsem si myslel.
>> V ORM API (nebo jak mám ten jazyk nazývat?) je to asi fakt symetrické, a
>> slouží to (jestli jsem vás dobře pochopil) jako zkratka, aby nebylo potřeba
>> zařazovat (v reálu ovšem vždy existující) vazební tabulku.
>> Bezva.
>>
>> Ale v adminu mi to moc symetrické nepřijde a ani podobné jedno druhému.
>>
>> Bez through=.. se zobrazí Select prvek, ale jen na jedné straně vazby, na
>> té, kde je definováno ManyToManyField (našel jsem nějaký 5 let starý
>> článek, jak ho přidat i na druhou stranu, a po nějakém úsilí ho doplnil pro
>> py36/dj20 a zobecnil).
>>
>> S through=.. se mi Select nezobrazí vůbec, a při pokusu ho přidat pomocí
>> explicitního seznamu fields=[.., ..] řve System Check, že to nelze.
>> Tak nevím, jestli je to vůbec přidatelné, nebo to vůbec nelze udělat.
>> Pokud to přijatelné je, tak asi přidáním extra datových managerů k modelům
>> na první i druhé straně (?).
>>
>> No, upřímně, čekal jsem, že to nebude taková dřina, a že v roce 2018 je
>> to už trochu dále.
>> Když třeba budu mít knihu, je schéma (více autorů : více knih) úplně
>> jasná věc, a zároveň je autor (resp. autoři) hlavním údajem knihy. Takže
>> pod autorem mohu uživatelovi promítnout knihy v Inlinu, ale pod knihou
>> promítat autory v Inlinu (a ne v Selectu na hlavní záložce) je prostě
>> šílené.
>> Tak až zas zbyde nějaký čas, budu se dál snažit...
>>
>>
>>
>>
>> Dne středa 13. prosince 2017 11:31:23 UTC+1 MirekZv napsal(a):
>>>
>>> Nemohl byste mě někdo navést?
>>> Na všechno o Djangu jsou milióny textů, ale zrovna o tomhle toho je
>>> minimum a nemůžu najít nic dobrého.
>>>
>>> Napřed jsem ani nevěděl, že je nějaká extra podpora (kromě Inlinů v
>>> Adminu) a myslel jsem, že prostě do modelu přidám vazební tabulku
>>> (minimalisticky se 2 cizími klíči).
>>>
>>> Pak jsem zjistil, že existuje v modelu ManyToManyField a sice ve 2
>>> vzájemně nekompatibilních verzích:
>>> bez through=...
>>> s through=... (ten mi v Adminu negeneruje widget; dělám něco blbě nebo
>>> to tak má být?)
>>>
>>> Obě pracují s vazební tabulkou, jen ve druhém případě k ní dělám model
>>> vazební tabulky ručně.
>>> A jak se tedy varianta s through= liší od toho, když udělám jen tu
>>> vazební tabulku a pole ManyToManyField nepoužiju?
>>>
>>> Mate mě taky to, že m:m relace není nahlížena symetricky, ale že si mám
>>> vybrat jen jednu z těch dvou tabulek a do ní ManyToManyField přidat.
>>> API pro výběr je (prý) sice stejné, ale v té druhé tabulce nebudu mít
>>> příslušný widget.
>>>
>>> Otázka tedy je:
>>> Kterou variantu si mám vybrat a proč?
>>>
>>> Nejde mi o jednoduchý příklad HlavniTabulka>=<Tagy - to chápu, že tam se
>>> hodí ta easy varianta bez through,
>>> ale o složitější datová schémata s možností dlouhodobé udržitelnosti a
>>> rozvoje (zesložitění schématu).
>>>
>>> Díky za případné nasměrování ....
>>>
>>> --
>> --
>> E-mailová skupina [email protected]
>> 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 [email protected].
>> Chcete-li tuto diskusi zobrazit na webu, navštivte
>> https://groups.google.com/d/msgid/django-cs/a766353f-ccf5-41
>> 77-aebc-eaef82d3812d%40googlegroups.com
>> <https://groups.google.com/d/msgid/django-cs/a766353f-ccf5-4177-aebc-eaef82d3812d%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> Další možnosti najdete na https://groups.google.com/d/optout.
>>
>
> --
> --
> E-mailová skupina [email protected]
> 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 [email protected].
> Chcete-li tuto diskusi zobrazit na webu, navštivte
> https://groups.google.com/d/msgid/django-cs/CAMmgUkMwkAvLN_Q65k%
> 3DvQ7fhkObdNPy6MDM9jRjdiu6eDGUt5w%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-cs/CAMmgUkMwkAvLN_Q65k%3DvQ7fhkObdNPy6MDM9jRjdiu6eDGUt5w%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> Další možnosti najdete na https://groups.google.com/d/optout.
>

-- 
-- 
E-mailová skupina [email protected]
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 [email protected].
Chcete-li zobrazit tuto diskusi na webu, navštivte 
https://groups.google.com/d/msgid/django-cs/CAEhMMr6dAq1H7N5eeP2x3HVofCwJCc5re69B_vgJAhJiSrotxQ%40mail.gmail.com.
Další možnosti najdete na adrese https://groups.google.com/d/optout.

Reply via email to