Django_table2 TemplateColumn用法

时间:2016-04-26 11:43:28

标签: django-tables2

我刚刚阅读了folowing article,我想了解有关使用TemplateColumn的第一种方法的更多信息。我想为每条记录编辑和删除方法生成两个伪列。

edit.html

> <a href="{% url some_url_edit record.pk %}" class="tbl_icon
> edit">Edit</a>

delete.html

> <a href="{% url some_url_del record.pk %}" class="tbl_icon
> delete">Delete</a>

DB

中不存在的2个伪列
  

class MyTable(tables.Table):
      column_edit = tables.TemplateColumn(edit.html)       column_delete = tables.TemplateColumn(delete.html)

如果这是正确的,根据文章如何在每个模板上传递record.pk以获取有关其密钥的必要信息?

2 个答案:

答案 0 :(得分:1)

我担心您的代码有点错误,因为有人必须使用以下命令才能正确显示列中的图像:                                                                                                   edit = tables.TemplateColumn('<a href="{% url "edit_division" record.pk %}"><img src=\'{% load staticfiles %} {% static "images/edit.jpg" %}\' / width="25"></a>',verbose_name=u'Edit',)

 delete = tables.TemplateColumn('<a href="{% url "delete_division" record.pk %}"><img src=\'{% load  staticfiles %} {% static "images/delete.jpg" %}\' / width="25"></a>',verbose_name=u'Delete',)   

我想问一下我是否可以在tables.py bootstrap css中使用以更好地呈现列和数据表?

答案 1 :(得分:0)

如果您想编辑或删除对象,则需要使用模型表:

class MyModelTable(tables.Table):
    name = tables.columns.Column()
    edit = tables.TemplateColumn('<a href='{% url "edit_my_model_instance" record.id %}'>Edit</a>', verbose_name=u'Edit', )    
    delete = tables.TemplateColumn('<a href='{% url "del_my_model_instance" record.id %}'>Delete</a>', verbose_name=u'Delete', )    

    class Meta:
        model = models.MyModel

请注意我们如何使用record.id将每行的ID传递给url模板标记,以便输出正确的编辑/删除网址。