2014-02-08 3 views
1

실행시 쿼리에 문제가 있습니다. 오류가 발생합니다. 'QCombination'콘솔 장고에서 실행하는 경우, 나는 파이썬 쉘에서 제대로'QCombination'개체가 반복 가능하지 않습니다

결과 (파이썬 manage.py 쉘)

>>> from api.models import User 
>>> from django.db.models import Q 
>>> User.objects.filter(Q(username__contains='lucas')) 
[<User: @lucas>, <User: @lucasfuentes>, <User: @lucas_gasolero>] 

views.py

def search(req, keyword): 
    users = User.objects.filter(
     Q(username__contains='lucas') | Q(name__contains='lucas') 
    ) 
    [..] 

ERROR에서 반환 객체가 반복 가능하지 않습니다.

Traceback: 
File "[..]/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    115. response = callback(request, *callback_args, **callback_kwargs) 

File "[..]/api/views.py" in search 
    84. Q(username__contains='lucas') | Q(name__contains='lucas') 

File "[..]/lib/python2.7/site-packages/django/db/models/manager.py" in filter 
    155. return self.get_query_set().filter(*args, **kwargs) 

File "[..]lib/python2.7/site-packages/django/db/models/query.py" in filter 
    669. return self._filter_or_exclude(False, *args, **kwargs) 

File "[..]lib/python2.7/site-packages/django/db/models/query.py" in _filter_or_exclude 
    687. clone.query.add_q(Q(*args, **kwargs)) 

File "[..]lib/python2.7/site-packages/django/db/models/sql/query.py" in add_q 
    1271. can_reuse=used_aliases, force_having=force_having) 
File "[..]lib/python2.7/site-packages/django/db/models/sql/query.py" in add_filter 
    1066. arg, value = filter_expr 

Exception Type: TypeError at /v1/search/as/ 
Exception Value: 'QCombination' object is not iterable 
+1

셸에서 동일한 쿼리가 아닙니다. 'Q (username__contains = 'lucas') | Q (name__contains = 'lucas')'? – warvariuc

+0

동일합니다. views.py'Q (username__contains = 'lucas') - 오류 'Q'객체는 반복 가능하지 않습니다. 쉘'Q (username__contains = 'lucas') | Q (name__contains = 'lucas')'오류가 없습니다! ( – lucasmg

+0

@lucasmg, 여전히 같은 문제가 있습니까? – Nil

답변

0

아무도 답변하지 않으므로, 저는 무언가를 시도 할 것입니다. 오른쪽 User을 가져와야합니다. Django documentation에서는, 다음과 같이 가져올 것 :

from django.contrib.auth.models import User 

우리는 당신이 당신의 쉘에서 from api.models import User를 사용하는 것을 볼 수 있지만, 당신이보기에 User을 가져 우리가 어떻게 표시되지 않습니다. 나는 그것이 "나쁜"수입과 쉘에서 작동하지만 아직도, 당신은 두 경우 모두에서 올바른 수입을 사용하고 결과를 알려주는지 확인하십시오. 그래도 작동하지 않는다면, 나도 몰라, 미안해!

0

@Nil과 비슷하지만 views.py에서 Q 가져 오기를 확인하십시오. django.db.models.Q이 아닐 수도 있습니다!

관련 문제