Как получить список «объектов» из набора запросов в отношении внешнего ключа в Django - PullRequest
0 голосов
/ 11 апреля 2019

Как я могу получить список объектов из запроса на реализацию внешнего ключа? (например, когда вы просматриваете список, используя «for x in foo: print (x)»)

код ниже:

class class Course(models.Model):
    name = models.CharField(max_length=20)
    user = models.ManyToManyField(User, related_name='typecourses')
    description = models.TextField(max_length=500)

class Module(models.Model):                                                         
    name = models.CharField(max_length=20)
    courses = models.ForeignKey(Course, on_delete=models.CASCADE, related_name='courses', null=True)

Ниже приведены два запроса, которые я пробовал в «представлениях», они оба выводят те же результаты, что и наборы запросов.

1/ module_taken = list(Course.objects.get(id=1).courses.all())
2/ module_taken = Module.objects.select_related('courses').all()

результат:

<QuerySet [<Module: Foo>, <Module: Bar>]>

Любая помощь будет высоко ценится.

1 Ответ

1 голос
/ 11 апреля 2019

Я думаю, что вы хотите сделать следующее:

course_taken = Course.objects.get(id=1)

Теперь пройденный курс содержит курс объекта с id = 1

modules_course = course_taken.courses.all()

Теперь курс модулей содержит набор запросов со всемимодули с course_taken в качестве внешнего ключа, обратите внимание, что курсы - это просто имя, которое вы указали в связанном имени

...