2016-03-20 14 views
0

Gerçekten çok tuhaf bir hatam var ve DOM'da şablonda bir sorun olup olmadığını veya django şablon hatası olup olmadığını bilmiyorum.Django şablon döngüsü, ilk yinelemede <form> öğesinde eksik

Şablon altyapısına bağlamın bir parçası olarak geçtiğim data_table adlı sözlüklerim var. Bir tablodaki satırları oluşturmak için çalışıyorum ve hücrelerinden biri şudur:

{% for row in data_table %} 
<tr> 
    <!-- a few cells ... followed by the final cell which contains a form --> 
    <td> 
    <form action="/remove-survey-question/" method="POST"> 
     <a href="#" onclick="removeSurveyQuestion(this)"> 
      <image class="trash-svg" src="{% static "trash.svg" %}"> 
     </a> 
     <input type="hidden" name="question_type" value="{{ row.question_type }}" /> 
     <!-- some more hidden inputs... --> 
    </form> 
    </td> 
</tr> 
{% endfor %} 

Bu ilk satır için haricinde mükemmel çalışır. Javascript işlevi bir hata atar çünkü tarayıcının DOM denetçisini kullandığımda, üst <form> düğümü eksik! Eksik olan <form>'un tüm çocuk düğümleri de mevcut.

Bu nasıl olabilir? Ben django 1.9.2 kullanıyorum.

+0

Sözlük üzerinde yineleme yapmak için, {{data_table.values%} satırında% {%} veya {anahtar için%, data_table.iteritems%}} değerinde olmalıdır. 'Imge' etiketi yanlış görünüyor, img olmalı. – sneawo

+0

Oh, üzgünüm, "sözlüklerin listesi" diyorum. Düzenledim. etiketi hakkında da haklısınız, kopyalama yapıştırma ve alakasız kodu kaldırmaya çalışırken eksik kaldım. Ayrıca, python3'te (ne kullandığımı), yinelemek için {% dictionary.items%} olduğunu düşünüyorum. – Escher

+0

Burada gösterdiğiniz kodla ilgili herhangi bir sorun yok mu? aldığınız asıl hata mesajı nedir? .. – Sayse

cevap

0

Sadece DOM ile karşılaştırdım ve kaynakta <form> etiketi var, ancak DOM var. Nedeni yanlışlıkla iç içe bir formu (ki izin verilmez) yaratmıştı.