我需要在 Django 中渲染一个动态矩阵形式(nrows x ncols)。
表格如下:
class MatrixForm(forms.Form):
def __init__(self, *args, **kwargs):
self.ncols = kwargs.pop('ncols', 1)
self.nrows = kwargs.pop('nrows', 1)
super(MatrixForm, self).__init__(*args, **kwargs)
for i in range(0,self.ncols):
for j in range(0,self.nrows):
field = forms.CharField(label="",max_length=2)
self.fields['c_' + str(i) + '_' + str(j)] = field
视图如下:
def my_matrix(request):
[nrows,ncols] = [3,4]
my_form = MatrixForm(nrows=nrows,ncols=ncols)
return render_to_response('my_matrix.html', RequestContext(request,
{'matrix_form':my_form,"nrows":range(nrows),"ncols":range(ncols)}))
但我被模板困住了。我的想法是执行一个典型的双循环(列和行),然后分别引用矩阵的每个元素,但在 Django 中这是不可能的:我应该使用类似 {{ matrix_form.c_{{ row } }_{{ col }} }}...
您对执行它有什么建议?