Как передать данные в LinkColumn django_tables2 - PullRequest
0 голосов
/ 04 марта 2012

Мой фрагмент кода 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 Ответ

4 голосов
/ 06 марта 2012

Наконец-то я заставляю его работать самостоятельно! Таблицы.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)  
...