2016-06-06 11 views
0

Das sind meine Modelle:Django - mit Foreign Abfrage

class Delivery(models.Model): 
    name = models.CharField(_(u"Name"), max_length=50) 
    permissions = models.ManyToManyField(settings.AUTH_USER_MODEL) 

class Content(models.Model): 
    delivery = models.ForeignKey(Delivery) 
    title = models.CharField(_(u"Title"), max_length=300) 

Nachdem die content_id, ich versuche, eine Abfrage zu machen mit einem Gehalt von id zurück, aber überprüfen, ob der Benutzer die Berechtigung hat. Wenn der Liefergegenstand abfragen kann ich dies:

delivery = get_object_or_404(Delivery, pk=self.kwargs['pk'], permissions=self.request.user) 

Mein Problem ist, dass ich weiß nicht, wie das gleiche zu tun, aber das Inhaltsobjekt abfragt. Ich versuche, wie diese

obj = Content.objects.get(Q(pk=self.kwargs['pk']), Q(delivery.permissions=self.request.user)) 

abzufragen, aber das Ergebnis ist „Schlüsselwort kann nicht sein und Ausdruck“

Vielen Dank für jede Hilfe

Antwort

1

Sie django verwenden sollten relation lookups:

Content.objects.get(delivery__permissions=self.request.user) 

Ich bekomme nicht wirklich, was Sie mit Q tun wollen, obwohl?

+0

Danke, nur was benötigt. Die Abfrage ist nun wie folgt: obj = Content.objects.get (pk = self.kwargs ['pk'], delivery__permissions = self.request.user). –