Přejmenování objektů v ModelForm

12 views
Skip to first unread message

Stanislav Vasko

unread,
Apr 10, 2021, 3:30:50 PM4/10/21
to django-cs
Zdravím,

asi už blbnu nebo prostě to nevidím, ale nemohu najít cestu, jak přetížit reprezentaci __str__ v queryset. Konkrétně, mám forms.ModelForm ve kterém mám i pole cizí klíč. Konkrétně pak tento cizí klíč omezuji:

form.fields["coursedate"].queryset = CourseDate.objects.filter(id__in=seznam).order_by('date_start’)

Pokud výsledek této filtrace pustím přímo do generovaného formuláře, pak jako výběr možností se nabídne __str__ z modelu CourseDate. Jenže já bych potřeboval, pro toto konkrétní použití, přejmenovat jednotlivé objekty, aby ve výběru vypadaly lépe než naše interní pojmenování. Ale nějak to nemohu vyGooglovat ani přes debugger se tomu ne a ne dostat na kobylku. Poradíte někdo?

Díky předem, Standa

Pavel Cisar

unread,
Apr 10, 2021, 4:29:12 PM4/10/21
to djan...@googlegroups.com
Zdravim,
tak bych si predefinoval choices pro ten konretni field. Neco jako.

form.fields["coursedate"].queryset = CourseDate.objects.filter(id__in=seznam).order_by('date_start’)
form.fields["coursedate"].widget.choices= [(d.id, d.get_custom_name()) for d in  form.fields["coursedate"].queryset]

Nevim, jestli je field povinny, takze pripadne pridat jeste empty value.
Mozna je neco elegantnejsiho, ale tohle by mela byt taky cesta.

Hodne zdaru

Pavel



so 10. 4. 2021 v 21:30 odesílatel Stanislav Vasko <stanisl...@gmail.com> napsal:
--
--
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/CAMD1ck8UuLs7M%3DShPD9wpYsDspEBRYza8vEsN%3D5PYWYWjxxmVQ%40mail.gmail.com.

Radim Novotny

unread,
Apr 11, 2021, 1:50:57 AM4/11/21
to djan...@googlegroups.com

Dá se využít i metoda label_from_instance v ModelChoiceField

Stačí jednoduchý subclass ModelChoiceField jak je uvedeno v příkladu v dokumentaci.

-- 
Radim



Stanislav Vasko

unread,
Apr 11, 2021, 3:30:20 AM4/11/21
to djan...@googlegroups.com

Díky oběma. Už mi to fachá a pro přehlednost jsem zvolil první řešení, protože to mám přímo u formuláře a v budoucnu budu vědět do čeho případně sáhnout.

Pěkný den, Standa
Reply all
Reply to author
Forward
0 new messages