2012-01-31 21 views
0

我有這麼多的麻煩形成正確的查詢來獲取我的結果...Django的查詢在多發表

from django.db import models 
from django.contrib.auth.models import User 

class GeoCatch(models.Model): 
    user_me = models.ForeignKey(User, null=True, related_name='me') 
    user_he = models.ForeignKey(User, null=True, related_name='he') 
    permission_he = models.BooleanField(default=False) 
    permission_me = models.BooleanField(default=False) 

查詢我需要:

獲得的各種Django的用戶表名user_he具有user_me = 1,並有permission_he = True和permission_me =真

這和其他幾個querys沒有成功...

get_friends = User.objects.values_list('username').filter(geoCatch__user_me=id)/ 
.filter(permission_he = True).filter(permission_me= True) 

給我錯誤:

django.core.exceptions.FieldError: Cannot resolve keyword 'geoCatch' into field. 

有人可以給我一個提示?

回答

1
# id is an id of a user object 
get_friends = User.objects.values_list('username', flat=True)\ 
    .filter(me__user_me__id=id, me__permission_he = True, me__permission_me= True) 
+0

這個作品!如果id由用戶對象設置...對不起...難以理解,特別是__me的東西... – Jurudocs 2012-01-31 12:37:04

+0

嗯它只是給了我很多次的id用戶名,因爲它找到了匹配的permission_he和permission_me ...... – Jurudocs 2012-01-31 13:17:11

2
friends = GeoCatch.objects.filter(user_me=User.objects.get(pk=id)) \ 
        .filter(permission_me=True) \ 
        .filter(permission_he=True).user_he_set.all() 
+0

好吧抱歉:我將id設置爲1,現在它給了我:AttributeError:'QuerySet'對象沒有屬性'he_set' – Jurudocs 2012-01-31 12:38:45

+1

嘗試編輯後的版本。 – 2012-02-01 05:45:17