2014-04-03 102 views
5

我有一個模型:'Q' 對象有沒有屬性 '分裂' - Django的

class Authors(models.Model): 
    name = models.TextField() 
    person = models.ForeignKey(Person) 

和查詢:

authors = Author.objects.filter(
           (Q(name__iregex=r"\y{0}\y".format(s1)), 
           ~Q(name__iregex=r"\y{0}\y".format(s2)) 
           ), 
           person=None).order_by('-id') 

我收到錯誤:

'Q' object has no attribute 'split' 

爲什麼是這樣?雖然我沒有使用split() ..錯誤的行在這個查詢行中。

+0

'\ y'匹配什麼?我從來沒有見過它。 – frnhr

+0

@frnhr只匹配整個單詞而不匹配單詞.. http://stackoverflow.com/a/14998059/903790 – doniyor

回答

6

我認爲你需要加入你的Q()過濾器和邏輯運算符如|&

authors = Author.objects.filter(
           (Q(name__iregex=r"\y{0}\y".format(s1)) & 
           ~Q(name__iregex=r"\y{0}\y".format(s2)) 
           ), 
           person=None).order_by('-id') 
+0

我認爲,'',''留在''&'',不是嗎? – doniyor

+0

我覺得因爲你有一個paren包裝的'Q()'對象,所以你需要明確地使用'&'。即,你有'過濾((Q(),Q()),人=無)'。是否改用'&'工作?我不完全有信心這個答案TBH haha​​ –

+0

感謝男人,現在像任何事情一樣工作:) – doniyor

相關問題