jak pises, to
{% if form.state_id.value == 0 or form.state_id.value == '0' %}
mi neprijde tak spatny a klidne bych to pouzil.V. On Fri, Sep 6, 2019 at 3:37 PM MirekZv <[email protected]> wrote: > Zdravím, lidi, mám takovouto potíž: > > > Stavem state_id řídím ve formsetech viditelnost checkboxu update_it, > ale checkboxy po selhané validaci zmizí kvůli problémům s typem state_id. > > DETAILNĚJI: > > class NejakejFormPouzivanyVeFormsetu(forms.Form): > update_it = forms.BooleanField(required=False) > state = forms.CharField(required=False, disabled=True) > state_id = forms.IntegerField(widget=forms.widgets.HiddenInput, > required=False) > > update_id je checkbox, který zobrazuju v každém formuláři toho formsetu > state_id/state souvisí s CHOICES=.., state_id=0,1,2, kdežto state je totéž > textově: NEW, PARTIAL, COMPLETED > > state_id má skrýt ten checkbox, jestliže není state==0/NEW > > state_id jsem přidal jako hidden field, aby mi přežilo failed-validation > > JENŽE: > > po form-get je state_id Integer (protože ho tak nastavuju, shodně s > .IntegerField) > po form-post-failed-validation je Char (v cleaned_data je samozřejmě > správně Integer) > > Takže test v templatě: > form.state_id.value == 0 > mi po selhané validaci selže - a checkboxy zmizí ze všech řádků, i z těch > NEW, kde mají být zobrazeny > > > VYŘEŠIL JSEM TO JEDINĚ TAK, > že jsem state_id změnil na CharField a taky tu konstantu předávám templatě > jako str(konstanta) > > > Přijde mi to ale takové protisrstné, > Když 0,1,2 jsou Integer CHOICES. > > Nemáte nějaký lepší nápad, jak to dělat? > > - buď nechat rozdílný typ pro GET a pro POST, a nějak upravit ten výraz v > templatě form.state_id.value==0, aby si poradil s oběma typy > - nebo ještě lépe: jak předat templatě jednotný typ Integer v obou > případech? > > -- > -- > 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/a55a7393-4145-4984-bb39-bbd39e484927%40googlegroups.com > <https://groups.google.com/d/msgid/django-cs/a55a7393-4145-4984-bb39-bbd39e484927%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- -- 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/CAFrZPmTnRiU8_pKSWcvnPbLfY8OuGg6qwb1us7OSS%3D-sA5oB6w%40mail.gmail.com.
