首页 > 其他分享 >Django中使用django_table2如何加一列操作

Django中使用django_table2如何加一列操作

时间:2022-12-04 21:02:04浏览次数:60  
标签:table2 text self value Django id django class

要加入列需要自定义一个列,doc中给出如下的例子:

>>> from django.utils.safestring import mark_safe
>>> from django.utils.html import escape
>>>
>>> class ImageColumn(tables.Column):
...     def render(self, value):
...         return mark_safe('<img src="/media/img/%s.jpg" />'
...                          % escape(value))
...

因此需要自定义一个列的操作:

class HandleColumn(tables.Column):
    def render(self, value):
        return mark_safe(
            '<a class="btn btn-warning btn-xs" href="/task/edit/%s/" style="margin-right: 5px;" >
        <span class="glyphicon glyphicon-edit" style="padding-right:3px;"></span>编辑</a>
        <a class="btn btn-danger btn-xs" href="/task/delete/%s/"><span class="glyphicon glyphicon-remove" style="padding-right:3px;"></span>删除</a>' % ( escape(value), escape(value)))

接下来就是使用:

from django_tables2.utils import A
class TaskTable(tables.Table):
    # title = tables.Column(attrs={"th": {"class": "text-center"}, "td": {"class": "text-center"}}) 这个是我的记忆,没有什么用
    handle = HandleColumn(verbose_name="操作", accessor=A('id')) # 因为编辑或者删除时必须要有id,所以需要访问 id 的值,这里 A 是一个访问器,需要提前导入

    def __init__(self, *args, **kwargs):
        super(TaskTable, self).__init__(*args, **kwargs)
        # 下面纯粹是为了循环,里面的名称没有什么用处。
        for name in self.columns.items():
            # 给每一列文字加上居中
            self.attrs.update({"th": {"class": "text-center"}, "td": {"class": "text-center"}})

    class Meta:
        model = Task
        sequence = ('id', 'level', 'title', 'user', 'detail')
        attrs = {'class': 'table table-sm table-bordered', "id": "mytable"}
        template_name = 'django_tables2/bootstrap4.html'

 

标签:table2,text,self,value,Django,id,django,class
From: https://www.cnblogs.com/lessonlearn/p/16950754.html

相关文章

  • django学习笔记-请求与响应
    1.请求与响应deftest(request):#获取请求方法print(request.method)#获取get的url请求参数print(request.GET)#获取post请求体参数pri......
  • django学习笔记-模板语法
    1.参数传递name="张三"alist=['a','b','c']adict={"name":"张三","role":"管理员","gender":"男"}data_list=[{"name":&......
  • django 下载创建一个项目
    作者:熊小辉 首先要下载  python  打开Pychaem 点击终端  新建一个文件叫djgo或者随便的名字终端切换到创建的文件下面cdD:\文件/djgo   创......
  • 【Django学习】加载site-packages下的template
      TEMPLATES=[{'BACKEND':'django.template.backends.django.DjangoTemplates',#'DIRS':['frontend/dist'],'DIRS':[os.path.join......
  • 【Django】Django model中的 class Meta 详解
     Model元数据就是"不是一个字段的任何数据"--比如排序选项,admin选项等等.下面是所有可能用到的Meta选项.没有一个选项是必需的.是否添加classMeta到你......
  • 【Django】django 多数据库配置
    在django项目中,一个工程中存在多个APP应用很常见.有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接。1.修改项目的settings配置在settings.py......
  • django学习笔记
    1.快速上手1.1安装djangopipinstalldjango1.2创建项目djangostartprojectprojectName会生成以下文件projectName├─manage.py项目的管理,启动项目、创建a......
  • Django基础
    官方文档:https://docs.djangoproject.com/zh-hans/4.1/introDjango下载安装安装安装正式版本cmd中输入pipinstalldjango安装特定版本安装最......
  • django mysql\base.py 报错 KeyError: <class 'bytes'>`
     追踪源码:问题文件:Python36\lib\site-packages\django\db\backends\mysql\base.pydefget_new_connection(self,conn_params):conn=Database.connect......
  • Django 操作数据库 出现 too many connections错误 连接次数过多
    通过CONN_MAX_AGE优化Django的数据库连接https://www.cnblogs.com/aaron-agu/p/10380559.html ......