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.

Reply via email to