2015-05-26 72 views
1

我只想渲染Django inline_formset中的字段。僅渲染Django中的字段inline_formset

這是我的模板:

<div id="storage"> 
    <h1>Storage</h1> 
    {% for form in storage_formset %} 
     <div class="form-group"> 
      <label class="col-sm-2 control-label">{{ form.help_texts }}</label> 
      <div class="col-sm-10"> 
       {{ form.errors }} 
       {{ form }} 
      </div> 
     </div> 
    {% endfor %} 
</div> 

這是我的表格:

help = {'field1' : "help1", 'field2' : "help2"} 

StorageFormSet = inlineformset_factory(WorkOrder, Storage, min_num=0, 
max_num=2, validate_min=True, validate_max=True, extra=1, help_texts=help, 
fields=('field1', 'field2')) 

這一個工作,但是當它呈現,它呈現形式的一切(現場和字段名)我希望它只渲染該字段。其他的事情是,help_texts不工作(我不知道我是否正確使用它)。

如果我使用:

{{ form.field1 }} 

它呈現field1的,但我想動態做,所以我不必一次又一次地重複。

如果我使用:

{{ form.fields }} 

它呈現一串代碼

OrderedDict(
[('field1', <django.forms.fields.TypedChoiceField object at 0x7f8f6409c890>), 
('field2', <django.forms.fields.IntegerField object at 0x7f8f6409c650>), 
(u'id', <django.forms.models.ModelChoiceField object at 0x7f8f6409c1d0>), 
(u'DELETE', <django.forms.fields.BooleanField object at 0x7f8f6409cc90>), 
('parent_field', <django.forms.models.InlineForeignKeyField object at 0x7f8f659c4e10>)]) 

我不知道自己還能做些什麼。

謝謝,如果你能幫助我。

回答

1

我修改你的代碼只渲染領域及其相關幫助文本:

<div id="storage"> 
    <h1>Storage</h1> 
    {% for form in storage_formset %} 
     <div class="form-group"> 
      <label class="col-sm-2 control-label">{{ form.help_texts }}</label> 
      <div class="col-sm-10"> 
       {{ form.errors }} 
       {% for field in form %} 
        {{ field }} {{ field.help_text }} 
       {% endfor %} 
      </div> 
     </div> 
    {% endfor %} 
</div> 

有關模板參觀訪問docs表單域的詳細信息。