2012-02-04 6 views
2

はのは、私は次の表のクラスを持っていると仮定しましょう:ジャンゴ - tables2 - テーブルクラスの他の列値のアクセス

class TestTable(tables.Table): 
    id = tables.Column() 
    description = tables.Column() 

    def render_description(self, value): 
     return mark_safe('''<a href=%s>%s</a>''' % (???, value)) 

はrenderメソッドの列「ID」の値にアクセスすることが可能であり、私はidにつながるリンクを構築できますが、 'description'フィールドに依存するテキストを表示できますか?

ありがとうございます!

class TestTable(tables.Table): 
    id = tables.Column() 
    description = tables.Column() 

    def render_description(self, value, record): 
     return mark_safe('''<a href=%s>%s</a>''' % (record.id, value) 

ない行レコードの正確な形状の確認、それは、ドキュメントへのリンクrecord['id']かもしれないので:あなただけを行うことができますように見えるrender_FOOためのドキュメントでチラッから

答えて

6

探検に役立つはずです...

+0

素晴らしい!レコード全体を格納し、パラメータとして渡すことでアクセスできる特別なオブジェクトがあることはわかりませんでした。ところで、あなたの2番目の推測は正しかった、それはそれがレコード['id']によってアクセスされる必要があるように辞書です。どうもありがとう! – noplacetoh1de

+2

'record'はあなたのデータにあなたのオブジェクトを入力するものです。 'dict'の配列を使用している場合、' record'は 'dict'になります。 –

1

@Darbありがとうございます、そのオプションは完璧に動作します。しかし、このaccesorsを使用しての代わりに、出力HTMLにテキスト列をハッキング行うにはどのような方法があれば、私は私の場合は

...思っていた私はmark_safeを交換したいと思いますしかし、私は

# tables.py 
from django.core.urlresolvers import reverse 
from django.utils.safestring import mark_safe 
#... 

class FieldTable(tables.Table): 
allows__count = tables.LinkColumn(viewname=None, attrs={'td': {'class': 'leftA'}}, 
            verbose_name='No. of Allowed values') 

    def __init__(self, *args, **kwargs): 
    super(FieldTable, self).__init__(*args, **kwargs) 

    def render_allows__count(self, value, record): 
    if value!=0: 
     a = reverse(viewname='dict:field_detail', 
         kwargs= 
         {'field_slug': record.slug, 
         'extract_slug': record.extract.slug, 
         'system_slug': record.extract.system.slug}) 
     return mark_safe('<a href={}>{}</a>'.format(a, value)) 

を使用しますallow_countのアクセサを呼び出し、逆ハイパーリンクとその値を返します。

とにかく分かりません。

関連する問題