2010-06-18 5 views
0

세트를 필터링하고 난 그 사용자의 블로그 게시물을 표시 할 . 같은 쿼리를 사용 : 그것은 단지 나에게로 사용자의 블로그 게시물을 보여줍니다장고 쿼리는 데이터

blog = New.objects.filter(created_by = following) 

을 템플릿에 을 (현재 실제로 그를 따르지 않는 로그인 한 사용자 불구하고) ID = 1 난이 :

{% for object in blog %} 
<a href='/accounts/profile_view/{{object.created_by}}/'> {{object.created_by}}</a> <br /> 
{{object.post}}<br /> 
{% endfor %} 

어디가 잘못 되었나요?

답변

2

.filter()은 발생하지 않고 모음을 반환합니다.

bloc = New.objects.filter(created_by__initiated_by = request.user) 

하지만 그건 나에게 이상한 느낌 ... 당신이 당신의 모델 설계의 확신 : 따라서, 나는 문제가 두 번째 쿼리가

blog = New.objects.filter(created_by__in = following) 
+0

이상하게도, 내가 원하는 것을 출력하지 못했습니다. 달성하고자하는 쿼리는 다음과 같습니다. select * from new, where created_by = user 또는 created_by = (select * from new where where = user) – dana

+0

django ORM에 대해 sql의 OR이 있는지 확실하지 않습니다. 그래서 두 개의 쿼리를 사용하는 것으로 돌아갈 것입니다. – Almad

+0

django.db.models에있는 'Q'객체를 사용하여 Django와 'OR'을 할 수 있습니다 (내 대답은 내 대답을 참조하십시오) –

0

심지어 간단해야한다는 것입니다라고 말하고 싶지만?

+0

간단히 말해서 다음과 같은 쿼리를 번역하고 싶습니다 : select * from 장고에서 : 새로운 CREATED_BY이 (가) 작성한 = 사용자 또는 CREATED_BY이 (가) 작성한 =이 (다음과 같은 경우 새로운 SELECT * FROM = 사용자) – dana

+0

그래서 어쩌면 당신은 쿼리를 만드는 'OR'할 수 있습니다 장고 'Q'객체를 사용할 필요가 따릅니다. db.models 가져 오기 Q MyModel.objects.filter (Q (some_field = something) | Q (some_other_field = foobar)) –