我正在尝试根据LinkColumn
的访问者在django-tables2
上设置GET参数。
让我们说:
urlpatterns = [
...
url(r'^rqGET$', views.rqGET, name='rqGET'),
...
]
def rqGET(request):
#... do something with request.GET
class MyTable(tables.Table):
id = LinkColumn('rqGet',text='Link') # do something with Accessors to make a GET string, maybe ?id=A('pk')
class Meta:
model = MyModel #(has field 'id')
我想使用reverse来获取正确的url,然后构造GET参数字符串。例如/rqGET?id=1
('1'在每一行中会有所不同。)
答案 0 :(得分:3)
这并不是访问者在django-tables2中的工作方式。 Django-tables2使用django的reverse
生成网址。如果您希望reverse
能够生成网址,则需要在网址中定义参数,这些参数将作为参数传递给您的视图函数:
# urls.py
urlpatterns = [
...
url(r'^rqGET/(?P<id>\d+)$', views.rqGET, name='rqGET'),
...
]
# views.py
def rqGET(request, id):
# do something with request/id.
如果您不想更改网址格式的方式,可以在render_
上使用自定义MyTable
功能,如下所示:
# tables.py
from django.core.urlresolvers import reverse
class MyTable(tables.Table):
id = LinkColumn('rqGet', text='Link') # do something with Accessors to make a GET string, maybe ?id=A('pk')
class Meta:
model = MyModel
def render_id(self, record):
url = reverse('rqGET')
return format_html('<a href="{}?id={}">{}</a>', url, record.id, 'Link')
这将呈现格式为/rqGET/?id=<id>
的链接。