1
我使用django 1.11和python 3.5.2。在for語句中通過django模板中的索引訪問列表?
這是我的代碼在views.py
ListaValoresLeidosXML = []
for sec in secciones:
print(sec.contenidoxml)
treexml = ET(fromstring(sec.contenidoxml))
Lista = []
for child in treexml.findall('caracteristica'):
nombre = child.find('nombre').text
Lista.append(nombre)
ListaValoresLeidosXML.append(Lista)
for lista in ListaValoresLeidosXML:
for valor in lista:
print(valor)
print('*****')
return render(request, 'editarCatElem.html', {
'elemento': ElemSeg,
'link': tutorial,
'subelementos': subelementos,
'secciones': secciones,
'listaXML' : ListaValoresLeidosXML
})
我讀我的數據庫,其內容的XML格式的文本字符串字段,使用treexml
我能得到的所有屬性的重要組成部分。
最後,我列出了一個列表,每個列表都有一個段的值,這意味着如果我有n
段,那麼我將在列表中有n
列表。
我發送一個名爲ListaXML的列表到我的模板。
在我的模板,我想重複其
{% for seccion in secciones %}
<div style="display: block" class="form-group">
<div style="display: block" class="form-group">
<label class="control-label col-md-2" for="nombreSeccion">Sección <span class="required">*</span></label>
<div class="col-md-2"><input type="text" value='{{ seccion.nombre }}' id="nombreSeccion" name="secciones[][nombreSeccion]" class="form-control col-md-2"></div>
<label class="control-label col-md-2" for="descSeccion">Descripción <span class="required">*</span></label>
<div class="col-md-2"><input type="text" value='{{ seccion.descripcion }}' id="descSeccion" name="secciones[][descripcionSeccion]" class="form-control col-md-2"></div>
</div>
<div class="col-md-offset-2 col-md-7">
<div class="form-horizontal form-label-left" style="background:lightblue; padding:8px;">
{% for caracteristica in listaXML %} # <-- Here is the problem!!
<div class="form-group">
<label class="control-label col-md-2" for="nombreCampo">Campo <span class="required">*</span></label>
<div class="col-md-4">
<input type="text" value='{{ caracteristica }}' name="secciones[][campos][][nombreCampo]" id="nombreCampo" class="form-control col-md-2">
</div>
</div>
{% endfor %}
<div class="form-group">
<button type="button" class="btn btn-primary col-sm-offset-0 col-sm-3" onclick="agregarCampo(event);"><i class="fa fa-plus"> </i> Agregar campo</button>
<button type="button" class="btn btn-danger col-sm-offset-1 col-sm-3" onclick="eliminarCampo(event);"><i class="fa fa-minus"> </i> Eliminar campo</button>
</div>
</div>
</div>
</div>
{% endfor %}
的問題是我需要每次重複做這個:
{% for caracteristica in listaXML.0 %}
{% for caracteristica in listaXML.1 %}
{% for caracteristica in listaXML.2 %}
{% for caracteristica in listaXML.3 %}
...
我需要增加的最終數量(索引的名單)。
我已經試過
{% for caracteristica in listaXML.forloop.counter0 %}
或
{% for caracteristica in listaXML.{{forloop.counter0}} %}
,但它不工作。
關於代碼如何工作的任何想法?
呀它的工作原理,但它給了我一個錯誤的渲染。我需要用變量 –
替換索引@AngelPineda你需要強制索引在listaXML級別或子列表?也許在循環之前更改對象更容易,只是一個想法,我不知道你期望的是什麼 – PRMoureu
@PRMoreu我需要強制在listaXML級別索引,最後我不能。我不得不修改發送給模板的參數。 –