2009-04-24 4 views
2

이제이 코드가 있습니다.함수의 인수의 이름을 동적으로 정의 할 수 있습니까?

  attitude = request.REQUEST['attitude'] 
     if attitude == 'want': 
      qs = qs.filter(attitudes__want=True) 
     elif attitude == 'like': 
      qs = qs.filter(attitudes__like=True) 
     elif attitude == 'hate': 
      qs = qs.filter(attitudes__hate=True) 
     elif attitude == 'seen': 
      qs = qs.filter(attitudes__seen=True) 

"attitudes__xxxx"라는 이름을 동적으로 정의하는 것이 좋습니다. 그것을 할 수있는 방법이 있습니까?

고마워!

+0

중복 : http://stackoverflow.com/questions/353489/cleaner-way-to-query-on-a-dynamic-number-of-columns-in-django –

답변

7

예.

qs.filter(**{ 'attitudes__%s'%arg:True }) 
+0

감사합니다! 당신의 케이스가 거의 수정되지 않았습니다. qs.filter (** { '태도 __ % s'% str (attitude) : True}) – ramusus

+1

str (태도)이 중복되었습니다. 그래서 S.Lott의 대답은 당신의 "약간 수정 된"변종보다 완벽하고 실제로 더 낫습니다. –

관련 문제