我在一个项目的不同应用程序中拥有学生和马克模型。
# 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,制作自定义视图功能,但这没有帮助。反向外键带来无。 我观看了相关问题 - 无法理解答案,因为它们与我的情况没有直接关系。
我期待获得所有学生的分数。
我做错了什么?
related_name='marks'
。此外,你在这里得到了 manager,而不是 queryset,使用 .all()
[Django-doc] 来获取对象:
<p>{{ student.marks.all }}</p>