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- > 4177-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 zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/CAMmgUkMwkAvLN_Q65k%3DvQ7fhkObdNPy6MDM9jRjdiu6eDGUt5w%40mail.gmail.com. Další možnosti najdete na adrese https://groups.google.com/d/optout.
