我使用这篇文章作为参考:Django: Adding inline formset rows without javascript
if request.method=='POST':
PrimaryFunctionFormSet = inlineformset_factory(Position,Function)
if 'add' in request.POST:
cp = request.POST.copy()
cp['prim-TOTAL_FORMS'] = int(cp['prim-TOTAL_FORMS'])+ 1
prims = PrimaryFunctionFormSet(cp,prefix='prim')
我试图在没有javascript的情况下添加内联行,并且在上面引用的实现中遇到了一些我不理解的事情。
感谢您的帮助,如果问题是新手,请抱歉!
答案 0 :(得分:1)
a)添加一个带有您希望的名称和值的按钮,它将作为POST数据提交,POST中的键是名称,值是值。
<input type="submit" value="true" name="add">
阅读Django here中的HTTPRequest对象。
b)否。该示例使用inlineformset_factory。这将使用给定的前缀'prim'为POST设置TOTAL_FORMS值。他们正在获取当前TOTAL_FORMS计数的副本,并添加1,然后返回新的formset。
c)prim在初始formset中定义,您确保返回具有相同前缀的新表单。此代码是表单的提交,因此您知道'prim'已设置为前缀。
d)是的!