2011-06-28 12 views
6

Genel görünüm benim için çok fazla kod kaydetti ama yine de her modelin şablonlarını yazmam gerekiyor. Temelde ben eklemek veya düzenlemek için modelden tüm alanları olmasını istediğiniz tüm şablon yani içindeDjango gibi Genel şablonlar gibi bir şey var mı? Genel görünümler

<form action="/{{type}}/{{ action }}/" method="post" enctype="multipart/form-data" > 
    {% csrf_token %} 
    {% for field in form %} 
     <div class="fieldWrapper"> 
      {{ field.errors }} 
      {{ field.label_tag }}: {{ field }} 
     </div> 
    {% endfor %} 
    <p><input type="submit" value="Submit" /></p> 
    </form> 

yani aynı kodu var.

etrafında herhangi bir iş automatrically django olarak

+1

Neden farklı şablonlara ihtiyacınız var? Neden tüm modeller için aynı şablonu kullanmıyoruz? Gösterdiğiniz kodda modele özgü hiçbir şey yok. –

+1

Ancak genel görünümler, şablon/app_form.html gibi bir şablon bekler. othwise ben orada şablon adını açıkça yazmalıyım. bu yüzden şablon adı yazmak yerine yazıyordum otomatik olarak bu – user2134226

+0

şablon adını yazıyor – Arion

cevap

0

, şablonlar kendisi jenerik olabilir jenerik şablonu orada sahip olmaktır !!

Sen

Here Django oficial doc olduğunu {{form.attribute}} kullanarak aynı şablonu içinde her model için ayrılmakta formu kullanabilirsiniz

+0

şablon adını yazarken sorun ne yazıyor? – user2134226

+0

şablonunun 'action' 'özniteliğinde ne yazmalıyım? yap... – juankysmith

1

Eğer özdeş olan şablon kodunuz varsa, kullanabileceğiniz include tag:

{% include "foo/bar.html" %} 

Ve dahil kod değişkenlerle değiştirilebilir:

01 kodu (Ben senin örnek değil emin farklı alanları olan formlar bahsediyor düşünüyorum) her şablon için farklı olsa bile
{% include "name_snippet.html" with person="Jane" %} 

, hala içerir kullanabilirsiniz - sadece iki blok yapmak:

{% include "startform.html with some_action="post" %} 
    {{ field.errors }} 
    {{ field.label_tag }}: {{ field }} 
    {{ field.field2_tag }}: {{ field2 }} 
{% include "endform.html %} 

Ayrıca, temel bir şablon tanımlayabileceğiniz ve diğer tüm şablonlarınızdan devralacağınız template inheritance da vardır. Kalıtım blok tabanlıdır, üst şablondaki blokları alt şablondaki yeni kodla geçersiz kılabilirsiniz. Çok iyi çalışıyor.

0

ModelForm helper app'a bakın. Basit bir form şablonunda kullanılabilecek herhangi bir modelden bir form oluşturacaktır.

İlgili konular