2016-04-03 14 views
0

Tamam, bu yüzden konumlar ve menü seçenekleri için bir modelim ve aralarında çok fazla ilişki var.Django manytomany filtresini ya da (ilişkiler = none veya herhangi bir ilişkiyi hariç tut = x)

Yapmak istediğim konum için önceden eklenmemiş olan menü seçeneklerini görüntülemektir. Bu yüzden bu ..

options = Options.objects.exclude(location=location_pk) 

Ancak bu şu anda listede yer almayan, konum ilişkileri yok menü seçenekleri ile sonuçlanır yaptı. Ben yapmak istiyorum ne

bu ikisinden birliktir:

Options.objects.filter(location=None) 
Options.objects.exclude(location=location_pk) 

Denedim ...

options = options.filter(Q(location=None) | ~Q(location=location_pk)) 

... ama bir seçenek daha sonra ~Q(location=location_pk) birden çok yer ne zaman olacak sadece diğer konumla eşleş.

Herkes yardımcı olabilir mi?

Eminim bunun mümkün olması gerektiğine inanıyorum, ama bir parçamın bunun olabileceğini ya da çözümün gereksiz yere karmaşık olması gerektiğini düşünüyor.

Teşekkürler.

cevap

0

Tamam, bir çözüm buldum.

Bu işi yapmak gibi görünüyor ...

Option.objects.exclude(~Q(location=None) & Q(location=location_pk)) 

sorgular oluyor tam olarak ne olduğunu görmek için yakın sql çıkışında bir göz atmak gerekecek.

Bunun, anlamaya çalıştığımı ve karmaşık olmadığını düşündüğümden uzun sürmediğine şükredin. püre

İlgili konular