2016-04-18 20 views
1

django-tables2を持つアクセサに基づいてリンク列にGETパラメータを設定しようとしています。django-tables2にGETパラメータを追加する方法LinkColumn

は言う:

#urls.py 
urlpatterns = [ 
... 
    url(r'^rqGET$', views.rqGET, name='rqGET'), 
... 
] 

#views.py 
def rqGET(request): 
    #... do something with request.GET 

#tables.py 
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') 

私は、GETパラメータの文字列を構築し、正しいURLを取得するために逆利用したいです。たとえば、/rqGET?id=1(「1」は各行で異なるでしょう)。

答えて

2

これは、Accessorがdjango-tables2でどのように機能するかは実際にはありません。 Django-tables2はdjangoのreverseを使ってURLを生成します。

# urls.py 

urlpatterns = [ 
... 
    url(r'^rqGET/(?P<id>\d+)$', views.rqGET, name='rqGET'), 
... 
] 

# views.py 
def rqGET(request, id): 
    # do something with request/id. 

あなたが方法を変更したくない場合は:あなたはreverseのURLを生成することができるようにしたい場合は、あなたのビュー関数の引数として渡されますされ、あなたのURLのデ・パラメータを定義する必要がありますこれは、フォーマット/rqGET/?id=<id>とのリンクをレンダリングします

# 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') 

:あなたのURLがフォーマットされて、あなたはこのようなあなたのMyTableにカスタムrender_機能を使用することができます。

関連する問題