Итак, я изучаю Django и пытаюсь получить значения через внешний ключ, используя только функции Django ORM. У меня есть две таблицы: Таблица пользователей (системная таблица Django auth_user по умолчанию) и таблица Student, содержащая student_id, user_id (FK) и nr_indeksu (это номер, содержащий дополнительную информацию для конкретной информации о студенте).Django Foreign Key QuerySet (join)
class Student(models.Model):
user = models.ForeignKey(User)
nr_indeksu = models.BigIntegerField()
def __unicode__(self):
return unicode(self.user
Я хочу получить nr_indeksu через пользовательскую модель. Другими словами, выполнить этот запрос (с использованием QuerySet):
SELECT nr_indeksu FROM auth_user
INNER JOIN courses_student on auth_user.id = courses_student.user_id;
Я попытался с помощью select_related функции():
u = User.objects.select_related().get(pk=2)
, но когда я пытаюсь получить доступ к nr_indeksu:
u.nr_indeksu
я что пользовательский объект не имеет атрибута (он имеет смысл, потому что nr_indeksu находится в модели Student, но не должен ли я получать его от пользователя?)
Дело в том, что я хочу получить nr_indeksu из модели пользователя, используя отношения JOIN и FK, вы отвечаете просто просто SELECT WHERE от модели Student – Malyo
Нет, это не так. 'user__id = 2' означает' Select * from USER, где user_id = 2; '. Это похоже на подзапрос. – sachitad
Хорошо, я вижу, спасибо - но все же я хотел бы получить доступ к студентам из объекта пользователя – Malyo