gpt4 book ai didi

django tables2 创建带有链接的额外列

转载 作者:行者123 更新时间:2023-12-04 16:39:41 27 4
gpt4 key购买 nike

我正在尝试在我的一个表中添加一个额外的列,将 url 添加到另一个页面。

我的表:

class ItemTable(tables.Table):
edit = tables.LinkColumn('item_edit', args=[A('pk')])
class Meta:
model = Item
fields = ('name', 'slot', 'klass', 'rarity', 'price')

我的网址:
url(r'^admin/item/edit/(?P<item_id>\d+)/$', views.item_edit, name='item_edit')

现在有了这个,我得到了我的表格,但最后一列(编辑)只有破折号+当我点击标题时页面崩溃。

我一直在看 http://django-tables2.readthedocs.org/en/latest/#django_tables2.columns.LinkColumn我不确定我哪里出错了

最佳答案

您遇到的问题是由LinkColumn引起的期望绑定(bind)到您的 Item 中的特定属性模型,即它正在寻找 Item.edit您的实例上的属性。
由于您实际上没有 Item.edit属性,订购您的edit列没有意义,您应该将其标记为不可排序:

from django_tables2.utils import A
edit = tables.LinkColumn('item_edit', args=[A('pk')], orderable=False)
链接本身的文本将来自 Item.edit 的值。属性,您没有,因此您需要通过添加 render_edit 自己提供它表类的方法:
def render_edit(self):
return 'Edit'
您可以替换 'Edit'字符串与您希望在该列中显示的任何内容。
更新:正如@SunnySydeUp 所建议的,您还需要指定 empty_values=()对于列,为了得到它的值呈现:
edit = tables.LinkColumn('item_edit', args=[A('pk')], orderable=False, empty_values=())
引用:
http://django-tables2.readthedocs.org/en/latest/pages/order-by-accessors.html#specifying-alternative-ordering-for-a-column
http://django-tables2.readthedocs.org/en/latest/pages/custom-rendering.html#table-render-foo-methods
免责声明:此答案基于 django-tables2文档和源代码,并且尚未在实际的 Django 应用程序上进行测试。

关于django tables2 创建带有链接的额外列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22941424/

27 4 0