2012-10-16 33 views
2

我正在使用Django框架,appengine數據庫。數據庫錯誤:查找類型'in'不能否定

我的模型代碼是:

class Group(models.Model): 
    name = models.CharField(max_length=200) 
    ispublic = models.BooleanField() 
    logo = models.CharField(max_length=200) 
    description = models.CharField(max_length=200) 
    groupwebsite = models.CharField(max_length=200) 
    owner = models.ForeignKey('profile') 


class Group_members(models.Model): 
    profile = models.CharField(max_length=200) 
    group = models.ForeignKey('group') 

我上查詢Group_members刪除組。我的查詢如下:

groups = Group_members.objects.filter(Q(profile=profile.id),~Q(group__in=group_id) 

信息:

  1. group_id = ['128','52']
  2. group是一個外鍵組模型

我的問題是,當我運行此查詢,它拋出數據庫錯誤:Lookup type 'in' can't be negated

我也執行查詢使用__in它工作正常,但不適用於外鍵。

在此先感謝

+0

您使用的是HRD完美的結果數據存儲?數據存儲不能處理NOT IN查詢。 – dragonx

+0

不能使用HRD數據存儲。 –

回答

2

我想你想的過濾分佈編號,並移除組GROUP_ID在單個過濾

groups = Group_members.objects.filter(Q(profile=profile.id),~Q(group__in=group_id) 

代替試試這個:

1)第一過濾器的輪廓形成組 - 成員:

groups = Group_members.objects.filter(profile=profile.id) 

2)刪除組形成查詢集由:

groupId = [x.group.id for x in groups if x.group.id not in group_id] 

希望這會給你

+0

Wooow,這是一個偉大的想法,ü搖滾,ñ感謝,完美的作品...你是天才朋友.. + 1爲此 –

1

2條建議。

  1. 使用〜Q(group__ pk__in = GROUP_ID)
  2. 而不是使用過濾的,而不是在使用排除