2013-04-07 2 views
2

나는 표 형식의 데이터를 표현하기 위해 django-tables2를 사용하는 웹 사이트를 만들었습니다. 나는 해결할 수 없었던 문제를 겪었다.Rerender django-tables2 열 머리글

일부 테이블에서 나는 나는 DB에서 끌어 값을 사용하여 열 verbose_name를 구성 : 이것은 사용자가 기본 볼륨 단위 설정을 변경까지 할 때까지 잘 작동

setting = Setting.objects.get(site=Site.objects.get_current()) 
vol_unit = setting.volume_unit 
base_vol_unit = Unit.objects.get(id=settings.BASE_VOLUME_UNIT) 
total_vol = tables.Column(
    verbose_name="Total Volume (" + vol_unit.symbol + ")") 

. 다음 서버를 다시 시작할 때까지 테이블에 반영되지 않습니다.

내가 테이블의 __init__ 방법에 삽입 할 수있는 것이있을 것이라고 상상하지만 나는 그것을 밖으로 견딜 수 없었습니다.

아이디어가 있으십니까? '당신이 실제로 돈 -

많은 감사

나단

답변

3

조금 늦게 대답하지만 결코보다 늦게은 :

이 당신이 아이디어를 얻을 때이 아니 어려운, 조금 까다 롭습니다 t 파이썬 당신이

그래서, 문제가 :) 필요한 모든 도구를 제공, 변경하거나 장고 - 테이블 2에서 아무것도을 상속 할 필요가 당신은 NA 자세한 정보 표시로 문자열을 전달하는 경우 나는 그것의 가치를 발견하기 위해 오직 한 번만 평가 된 다음 그것은 단지 정적 인 문자열이다. 당신이 정말로해야 할 일은 문자열로 동작할만한 것을 전달하는 것입니다 만, 그 값은 매번 재평가 될 것입니다.

음, 이것은 __unicode__ 방법이 있습니다 만 일반 클래스,이 같은 예를 들어 뭔가 :

 
import datetime 
class Foo: 
    def __unicode__(self): 
     return unicode(datetime.datetime.now()) 

다음 당신은 당신의 테이블에 그런 일 할 수 있습니다

 
class MyTable(tables.Table): 
    koko = tables.Column(verbose_name=unicode(datetime.datetime.now())) 
    koko2 = tables.Column(verbose_name=Foo()) 

을 koko 열의 머리글은 항상 같은 값을 갖지만 koko2의 머리글은 페이지를 새로 고칠 때마다 변경됩니다!

파이썬 FTW!

+0

대단히 감사합니다! 그렇게 생각하지 않았습니다. 분명히 설명했다. –