У меня есть 3 модели, пользователь, группа и экзамен:В Джанго, для пользователя, получить все объекты, которые ForeignKey группам он/она принадлежит (эффективно)
from django.db import models
from django.contrib.auth.models import User, Group
class Exam(models.Model):
# a lot of fields
solutions_group = models.ForeignKey(Group)
Для экземпляра user
модели User
Я хочу получить все Exam
s, у которого solutions_group
user
принадлежит.
Это то, что я подумал:
exam_list = []
for group in user.groups.all():
exam_list+= list(group.exam_set.all())
Но это включает в себя несколько запросов к базе данных.
Есть ли лучший способ сделать это, используя вопросы с меньшими объемами?
Я использую Python 3.4 и Django 1.8.
'Exam.objects.filter (solutions_group__user_set = admin) 'не работает. 'ValueError: не может запросить« admin »: должен быть экземпляр« Group ». Здесь admin имеет тип User. –
'Exam.objects.filter (solutions_group__user_set = user)' не работает. 'ValueError: не может запросить« gauss »: должен быть экземпляр« Group ». Здесь« gauss »- это' user.username' –