Portál AbcLinuxu, 4. května 2025 10:32

Dotaz: django, selected select v template

25.9.2015 14:27 DIK
django, selected select v template
Přečteno: 276×
Odpovědět | Admin
Čau, mám dotaz na django borce! Jak mám při iteraci choicefield v template určit selected option? Příklad dole nefunguje... vyzkoušel jsem uplně vše....už jsem z toho zelený. Díky D.

(zvýrazněná podmínka nefunguje...)


<select name="{{ form.account.name }}" class="form-control" id="{{form.account.id_for_label }}" >

{% for id, name in form.account.field.choices %}

{% ifequal form.account.field.initial id %}

    <option> value="{{ id }}" selected="selected">{{ name }}</option>
{% else %}
    <option> value="{{ id }}">{{ name }}</option>
{% endifequal %}

{% endfor %}

</select>


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.9.2015 22:39 Olaf
Rozbalit Rozbalit vše Re: django, selected select v template
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jaký typ je initial a id? Oba jsou integer (v databázi teda IntegerField)? Ten initial je definován jak? Je to první hodnota, nebo podle čeho se vybírá první (selected) položka?
Řešení 1× (johniez)
26.9.2015 23:50 Olaf
Rozbalit Rozbalit vše Re: django, selected select v template
Aha, teď jsem to pochopil. Initial je string, ne? ID je integer, ne? Takže tam se kontroluje třeba, zda 1 == "1", což dá False. Zkus tam dát filtr, který string nejprve převede na integer. Tj. něco jako if id == form.account.field.initial|add:0 nebo naopak zkus převést integer na string pomocí slugify, tj. něco jako if form.account.field.initial == id|slugify, resp. s tím ifequal.
29.9.2015 18:16 DIK
Rozbalit Rozbalit vše Re: django, selected select v template
jo, to je ono... problém byl v string vs int. Díky D.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.