2015-01-21 2 views
2

안에 미디어를 추가 할 수 있습니까? Widget?Django 위젯에 미디어를 동적으로 설정하십시오.

페이지의 언어를 찾아서 위젯에 전달해야하지만 미디어 초기화 후 요청 처리를위한 미들웨어가 작동하는 것으로 보입니다.

그래서, 기본적으로 내가 무엇을 : 미들웨어 미디어하기 전에 코드를 실행하지 않았기 때문에

class SimpleMiddleware(): 
    # some code for getting language... 


class MyWidget(Widget): 

    class Media: 
     js = (
      '//some source&language='+translation.get_language(), 
     ) 

translation.get_language는 잘못된 언어를 제공합니다.

답변

2

당신은 set media as a dynamic property해야합니다

class MyWidget(Widget):  
    def _media(self): 
     return forms.Media(js=(
      '//some source&language='+translation.get_language(), 
     )) 
    media = property(_media) 
+0

이 작동하지 않는, 미디어 = 재산 (_media)를 즉시 실행할 수 있기 때문이다. –

+0

그것은? 나는 재산을 정의한다고해서 보통 게터를 즉시 호출하지는 않을 것이라고 생각합니다. –

+0

테스트를 마쳤습니다. 작동하지 않습니다. _media가 MiddleWare보다 먼저 호출되었습니다 –

관련 문제