Bunun gibi bir şeyin oluşturulmasını otomatikleştirmeye çalışıyorum:Django: django formunu kullanarak HTML giriş dizisi oluştur
<input type='text' name='asdf[]' />
<input type='text' name='asdf[]' />
<input type='text' name='asdf[]' />
Formdaki bir aralıkta dolaşarak. Bazı diğer varyasyonlarla birlikte böyle şeyler deniyorum:
# in a model class
for i in range(1, prim+1):
self.fields['asdf'] = forms.CharField(label=i)
# in the template
<form action='#' method='post'>
{{form.as_p}}
</form>
Fakat hiç şansım olmadı.
Bir giriş dizisini otomatikleştirme hakkında nasıl gidebilirim?
** edit ** Açıklamak gerekirse, şablondaki alanlara şu şekilde erişebilmem gerekir:
{% for input in form.fields.asdf %}
{{input}}
{% endfor %}
Bu, umarım bana yukarıda gösterilen orijinal giriş listesini getirir.
Kişisel döngüye hepsini sarma şablondan ayrı ayrı h Formset, sadece geçersiz etiketi ile yeni Charfield yaratıyor ve üzerine yazma self.field [ 'asdf'] (bir tamsayı olamaz). Yapmaya çalıştığın şeyin ne olduğundan emin değilim. Seçenek özelliğini kullanmaktan hoşlanıyor musunuz? –
Yea, bu belirli sürümü sadece üzerine yazar. Listeler ve/veya sözlükler oluşturmaya çalışılmadan önce daha karmaşık bir kodum vardı ama onları da işe alamadım. – Brant
Belki de etiketinizi 'asdf' ya da başka bir şey haline getirebilir, sonra tüm alanlardan geçebilir, '{% ifequal field.label' asdf '%} 'eşleştiğinde çıktı alabilir ve sonra 1, 2 değerini göstermek için forloop.counter işlevini kullanabilirsiniz. , 3, vb. Aşağıda cevabımı güncelledim. işe yarayabilecek –