如何将数据传递给django_tables2的LinkColumn

时间:2012-03-04 02:32:14

标签: python django django-tables2

我的urlconf片段是:

url(r'^play/(?P<songid>\d+)', 'playid', name="playsongid")

playid是一个视图函数,它的定义如下:

def playid(request, songid):
    #do something

我使用django-tables2库,他们的教程是[django-tables2] [1]。 我的表是:

import django_tables2 as tables

class TestTable(tables.Table)
    links = tables.LinkColumn("playsongid", kwargs={"songid": ...})

“......”是我困惑的位置。我如何在视图函数中将各种songid数据传递给它(此视图函数不是playid,它是另一个视图函数)? 我希望django-tables2可以像这样渲染数据:

column
<a href="/play/1">aaa</a>
<a href="/play/2">bbb</a>
<a href="/play/3">ccc</a>

1 个答案:

答案 0 :(得分:4)

最后我自己开始工作! tables.py最后是这样的:

import django_tables2 as tables
from django_tables2.utils import Accessor

class TestTable(tables.Table)
    songid = tables.Column()
    links = tables.LinkColumn("playsongid", kwargs={"songid": Accessor("songid")})

在我的视图功能中,我将数据传递给它

    playlist = conn.playlistinfo()
    table_data = []
    for info in playlist:
        tmp_dict = {"songid": info.id}
        tmp_dict["links"] = "%s - %s" % (get_attr(info, "artist"), get_attr(info, "title"))
        table_data.append(tmp_dict)
        del tmp_dict
    variables["table"] = PlaylistTable(table_data)