django query über zwei tabellen

Django, Flask, Bottle, WSGI, CGI…
Antworten
Jurudoca
User
Beiträge: 23
Registriert: Dienstag 26. Juli 2011, 13:58

Hi,
habe gerade echt Probleme eine ordentliche Abfrage in Django zu stande zu bringen.
Was ich will ist die Ausgabe derjenigen Usernamen, zu denen user_me sowohl permission_he als auch permission_me = True hat.

Code: Alles auswählen

# das Model

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)

# im view: 

get_friends =  User.objects.values_list('username', flat=True).filter(me__user_me__id=4, me__permission_he = True, me__permission_me= True)
ausgabe:
[u'freund', u'freund']
Warum kommen hier nicht die Usernamen der Benutzer aus der auth_user Tabelle?
Jurudoca
User
Beiträge: 23
Registriert: Dienstag 26. Juli 2011, 13:58

okay ich habs selbst zurechtgefriemelt:
my_id = 69
get_friends=GeoCatch.objects.select_related().filter(user_me=my_id, permission_he = True, permission_me = True)
for i in get_friends.values('user_he'):
a = User.objects.filter(id=i.values()[0])
print a[0]
Für alle Interessierten: das select_related() hats vollbracht. Hier werden die namen aus der django user tabelle auth_user mit in den queryset integriert und abrufbar
Antworten