django - 如何使用模板显示两个表中的字段(使用 FK)
问题描述
在我的模板中,我想显示按“类别”分组的“挑战”,例如
第一类
- 挑战一
- 挑战 2
第 2 类
- 挑战 3
- 挑战 4
这是我的models.py:
class Category(models.Model):
title = models.CharField(max_length=100)
description = models.CharField(max_length=400)
class Challenge(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE)
question_text = models.CharField(max_length=200)
answer_text = models.CharField(max_length=200)
在我的模板文件中,我想做这样的事情:
{% for category in category_list %}
{{ category.title }}
<ul>
{% for challenge in Challenge.objects.get(category_id=category.id) %}
<li>{{ challenge.question_text }}</li>
{% endfor %}
</ul>
{% endfor %}
但我知道你不能在模板中调用函数。我还能如何在关系中显示来自两组的数据?
解决方案
假设您的 category_list 是一个 QuerySet,您可以通过多对一关系获取相关的挑战值
{% for category in category_list %}
{{ category.title }}
<ul>
{% for challenge in category.challenge_set.all %}
<li>{{ challenge.question_text }}</li>
{% endfor %}
</ul>
{% endfor %}
推荐阅读
- json - 将 wordpress 表单数据发送到外部 API
- linux - 无法查看托管在 EC2 服务器上的简单网站
- c# - C# 的问题:StartIndex 不能小于零。参数名称:startIndex
- python - 带海龟模块的蛇游戏:如何阻止它改变方向过快
- c# - C#如何获取设备的ClassGuid?
- sql - 具有多个条件的 MS Access 查询
- java - 在哈希图上循环时出现并发修改错误
- flutter - Flutter - 图像资源服务捕获的异常
- javascript - 如何在 React-native 中为 Switch 按钮添加渐变背景
- vue.js - 如何将数据从我的函数传递到数据方法?