4
Django的:1.4.1modelformset_factory不接受額外的參數
型號:
class Hoja(models.Model):
nombre = models.CharField(max_length=200) # requerido
class Linea(models.Model):
hoja = models.ForeignKey(Hoja) # requerido
nombre = models.CharField(max_length=200) # requerido
padre = models.ForeignKey('self', null=True, blank=True, related_name='hijo')
查看:
lineas = Linea.objects.filter(hoja=alt).order_by('id')
LineaHojaSet = modelformset_factory(Linea, can_delete=True, extra=1 if request.POST.has_key('siguiente') else 0)
formset = LineaHojaSet(request.POST or None, queryset=lineas)
if request.method=='POST':
# process formset
return render_to_response('template.html', {'formset':formset}, context_instance=RequestContext(request))
模板:
<table>
<thead>
<tr><th>Nombre</th><th>Borrar</th></tr>
</thead>
<tbody>
{% for fs in formset %}
<tr>
<td>{{ fs.nombre }}</td>
<td>{{ fs.id }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<input type="submit" name="siguiente" value="Añadir siguiente" />
當我提交了「 siguiente「按鈕,我可以看到比f ormset正在獲得正確的額外字段1,但在網頁中,唯一顯示的數據行是數據庫字段。這是一個錯誤,或者我做錯了什麼?
我只是在POST後設置了「siguiente」字段才顯示額外的行。在正常的GET我只想顯示數據庫的。 – voodmania
通過POST獲取數據,我不確定在處理POST後如何顯示數據/表單。您可能想要顯示完整的視圖代碼。 – Rohan
我編輯了視圖代碼,以顯示我總是發送並顯示formset。我的問題是,我無法顯示額外的行我強制提交「siguiente」按鈕。 – voodmania