﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
13423	Subquerying using models	jprafael@…	nobody	"Using this models

{{{
class UserProfile(models.Model):
    data 	= models.ManyToManyField('self', through='DataPerms', symmetrical=False)
    ....

class DataPerms (models.Model):
    user = models.ForeignKey(UserProfile)
    data = models.ForeignKey(Data)

    edit = models.BooleanField()
    view = models.BooleanField()
    ....

class Data (models.Model):
    text = models.TextField(max_lenght=50)
}}}

One should be allowed to view all data a user can view. To do this i am currently doing something like
{{{
Data.objects.in_bulk(list(DataPerms.objects.filter(user = request.user, edit = True).values_list('data', flat=True))).values()
}}}

i think it should be a straight forward implementation to allow to fetch object fields from a QuerySet without having to iterate trough all. something like values() but that resolves PKs into objects and returns another QuerySet.

{{{
DataPerms.objects.filter(user = request.user, edit = True).field('data').all()
}}}

Should translate to

SELECT * FROM `data` WHERE id in (SELECT id FROM `dataperms` WHERE user = 'userid' && edit = 1)"		closed	Database layer (models, ORM)	1.1		invalid	models subquery		Unreviewed	0	0	0	0	0	0
