将自定义列添加到从ModelForm创建的表中

时间:2012-09-25 01:32:10

标签: javascript jquery django django-forms

所以我想为从ModelForm生成的表的每一行添加一个额外的列。在Django模板中,我使用:

 {{form.as_table}}

根据行,该列的内容将有所不同。现在我有这个:

$('.table tr').each(function() {
    $(this).append("<td></td>");        
})
var row = $("#id_manufacturer").parent().parent();
var cells = $("td", test);
$(cells[1]).append("Stuff I am adding for this specific row");

我们有更好的方法来做到这一点!?谢谢!

1 个答案:

答案 0 :(得分:0)

如果这是您需要添加的唯一内容,那么这应该没问题。

您可以按如下方式稍微优化代码:

$('.table tr').each(function() {
    $(this).append('<td class="myNewColumn"></td>');
})
$("#id_manufacturer").closest("tr").find("td.myNewColumn").append("Stuff I am adding for this specific row");

我不确定test但是假设您的意思是row

这种方法避免使用.parent().parent(),如果HTML结构在将来改变,这有点难看,容易出错。

类似地,用于标识新添加的列的类名可以使您免于将来对表结构的更改。 cells[1]可能有一天会成为cells[2]

基本上,我的代码与原始代码完全相同,加上一些面向未来的代码。