获取ID值而不是django-tables2中的名称

时间:2014-09-23 18:25:48

标签: python django django-tables2

我是django的新手,我有一些问题。

我有一个用django-tables2渲染的html表,这个表基于一个模型: tables.py

class MasterTable(tables.Table):
    class Meta:
        model = Master

我有一个JS脚本在第一列中插入一个下拉按钮:

<script language="javascript">
function GetAllValues() {
    var tbl = document.getElementById("myTable");
    for (var i = 0; i < tbl.rows.length; i++){
       for (var i = 1; i < tbl.rows.length; i++){
           tbl.rows[i].cells[0].innerHTML = '<div class="btn-group">\
                            <button type="button" class="btn btn-xs btn-primary dropdown-toggle" data-toggle="dropdown">'
                                + tbl.rows[i].cells[0].innerHTML +
                            '<span class="caret"></span>\
                            </button>\
                            <ul class="dropdown-menu" role="menu">\
                                <li><a data-toggle="modal" data-target="#" >Configura</a>\
                                </li>\
                                <li><a data-toggle="modal" data-target="#">Cambiar estado</a>\
                                </li>\
                                <li><a data-toggle="modal" data-target="#">Ver estadíicas</a>\
                                </li>\
                                <li class="divider"></li>\
                                <li><a data-toggle="modal" data-target"#">Reproceso</a>\
                                </li>\
                            </ul>\
                        </div>'
       } 
}    
</script>

在我的models.py中,我有这个

class Provider(models.Model):
    id_provider = models.IntegerField(blank=True, null=True, primary_key=True)
    name = models.CharField(max_length=50, blank=True)

    class Meta:
        managed = False
        db_table = 'mpc_proveedores'

    def __unicode__(self):
        return self.name


class Master(models.Model):
    id_provider = Models.ForeignKey(Provider,
                                    db_column='id_provider',
                                    primary_key=True,
                                    verbose_name='Provider')
    year = models.IntegerField(blank=True, null=True)
    month = models.IntegerField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'mpc_master'

我在html表中呈现的表是模型Master。 当我在html表中呈现主模型时,向我显示提供者名称而不是id_provider并且它很好,但是当我单击html表的第一列时,我需要获取id_provider的值,而不是提供者的名称。

如何将id_provider作为参数传递给另一个页面(表单)后,获取id_provider的值而不是提供者名称。

非常感谢任何建议,链接或代码段

提前致谢

1 个答案:

答案 0 :(得分:0)

你可以这样做:

class MasterTable(tables.Table):

    def render_id_provider(self, **kwargs):
        return kwargs['value'].id_provider
    class Meta:
        model = Master