2017-11-22 1 views
0

동적 필드가있는 필터를 준비해야합니다. 필드 이름을 모르므로 동적으로 지정해야합니다. 내가 지금까지 뭘하려 여기 ,동적 필드가있는 q 객체로 django 필터링

gen_query = reduce(operator.or_, (Q(eval('%s=i' % (field, i))) for i in request.query_params.get(field).split(','))) 

하지만 구문 오류가 상승!

내가

방법이를 달성하기 위해 ... eval(field_name as string) 여전히 내가 오류를 얻고, 사용하고?

는 난 당신이 문자열 형식을 필요로하는 경우는 Q('{}={}'.format(field, i))을 사용할 수 동적 필드

답변

2

당신은 매개 변수로 DICT를 작성하고 Q 생성자에 압축을 해제 할 수 있습니다 내가했던 것처럼 ... 당신의 코드 만 연결을 할 것입니다

gen_query = reduce(operator.or_, (Q(**{field: i}) for i in request.query_params.get(field).split(','))) 
+0

자사의 위대한 작품 –

0

와 Q 객체와 장고 필터링을하고 싶어?

+0

이 필터 쿼리입니다 ... 난 아무 의미가 거기에 없다 생각 .. 그 방금 다른 방법 –