Django反向ForeignKey返回None

问题描述 投票:0回答:1

我在一个项目不同应用程序中拥有学生和马克模型。

# project/study
# models.py
class Mark(models.Model):
    ...
    student = models.ForeignKey(
        "students.Student",
        on_delete=models.PROTECT,
        related_name="marks",
        related_query_name="mark",
    )


# project/students
# models.py
class Student(models.Model):
    ...

# views.py
class StudentDetailView(DetailView):
    queryset = Student.objects.prefetch_related("marks")
    template_name = "students/one_student.html"
    context_object_name = "student"


# one_student.html
...
    <p>{{ student.marks }}</p>
...

html 的输出是“study.Mark.None”这是我的问题。

我尝试在学生上制作 ManyToOneRel 字段,select_lated,制作自定义视图功能,但这没有帮助。反向外键带来无。 我观看了相关问题 - 无法理解答案,因为它们与我的情况没有直接关系。

我期待获得所有学生的分数。

我做错了什么?

django django-models django-views
1个回答
0
投票

related_name='marks'
。此外,你在这里得到了 manager,而不是 queryset,使用
.all()
 [Django-doc]
来获取对象:

<p>{{ student.marks.all }}</p>
© www.soinside.com 2019 - 2024. All rights reserved.