django-tables2 linkcolumn同一单元格中的多个项目

发布于 2024-11-14 12:55:15 字数 379 浏览 4 评论 0原文

我想使用 tables.LinkColumn 将多个“项目”添加到同一单元格。

像这样的事情:

column_name = tables.LinkColumn('some_url_edit', args=[A('pk')], attrs={'class':'tbl_icon edit'})
column_name += tables.LinkColumn('some_url_del', args=[A('pk')], attrs={'class':'tbl_icon delete'})
column_name += ...

这可能吗?或者我应该创建自己的表格视图,而不使用 django-tables 。

谢谢!

I'd like to add multiple 'items' to the same cell using tables.LinkColumn.

Something like this:

column_name = tables.LinkColumn('some_url_edit', args=[A('pk')], attrs={'class':'tbl_icon edit'})
column_name += tables.LinkColumn('some_url_del', args=[A('pk')], attrs={'class':'tbl_icon delete'})
column_name += ...

Is this even possible? or should I create my own table view, without django-tables.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萌化 2024-11-21 12:55:15

这里有两个选择,要么使用 TemplateColumn,或者编写 render_FOO 方法。

下面是一个使用 TemplateColumn 的示例(如您所见,记录已添加到用于呈现模板的上下文中,从而允许您通过 < code>record.pk:

TEMPLATE = '''
   <a href="{% url some_url_edit record.pk %}" class="tbl_icon edit">Edit</a>
   <a href="{% url some_url_del record.pk %}" class="tbl_icon delete">Delete</a>
'''

class MyTable(tables.Table):
    column_name = tables.TemplateColumn(TEMPLATE)

使用 render_FOO 的示例:

from django.utils.safestring import mark_safe
from django.core.urlresolvers import reverse

class MyTable(tables.Table):
    column_name = tables.Column()

    def render_column_name(self, record):
        edit_url = reverse("some_url_edit", args=[record.pk])
        del_url = reverse("some_url_del", args=[record.pk])
        return mark_safe('''<a href="%s" class="tbl_icon edit">Edit</a>
                         <a href="%s" class="tbl_icon delete">Delete</a>'''
                         % (edit_url, del_url))

如您所见,TemplateColumn 方法可能更干净一些
你的情况。

You have two options here, either use a TemplateColumn, or write a render_FOO method.

Here is an example using the TemplateColumn (as you can see the record is added to the context that is used to render the template, thus allowing you to access the pk via record.pk:

TEMPLATE = '''
   <a href="{% url some_url_edit record.pk %}" class="tbl_icon edit">Edit</a>
   <a href="{% url some_url_del record.pk %}" class="tbl_icon delete">Delete</a>
'''

class MyTable(tables.Table):
    column_name = tables.TemplateColumn(TEMPLATE)

Example using the render_FOO:

from django.utils.safestring import mark_safe
from django.core.urlresolvers import reverse

class MyTable(tables.Table):
    column_name = tables.Column()

    def render_column_name(self, record):
        edit_url = reverse("some_url_edit", args=[record.pk])
        del_url = reverse("some_url_del", args=[record.pk])
        return mark_safe('''<a href="%s" class="tbl_icon edit">Edit</a>
                         <a href="%s" class="tbl_icon delete">Delete</a>'''
                         % (edit_url, del_url))

As you can see the TemplateColumn approach is probably a little cleaner in
your case.

GRAY°灰色天空 2024-11-21 12:55:15

渲染 foo 的示例对我来说不起作用,列定义为 tables.Column()
现在我将 TemplateColumn 与 render_FOO 一起使用。

TEMPLATE = "<text></text>"
column_name = tables.TemplateColumn(TEMPLATE)

Example with render foo didn't work for me with column defined as tables.Column().
Now i use TemplateColumn with render_FOO.

TEMPLATE = "<text></text>"
column_name = tables.TemplateColumn(TEMPLATE)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文