django - 如何显示外键项的列表?
问题描述
我正在努力显示外键项目列表。我可以显示类别列表。但我无法显示属于此类别的时间列表。例如,如果我们认为它们属于同一类别,我想显示属于该类别的模型:
- 肉比萨
- 蔬菜披萨
模型.py
class PizzaCategory(models.Model):
PIZZA_CATEGORY = (
(1, 'Meat'),
(2, 'Fish'),
(3, 'Vegetarian'),
)
name = models.CharField(max_length=250)
category = models.IntegerField(choices=PIZZA_CATEGORY,default=1)
def __str__(self):
return self.name
class PizzaTopping(models.Model):
name = models.CharField(max_length=60, unique=True)
def __str__(self):
return self.name
class MeatPizza(models.Model):
name = models.CharField(max_length=60, unique=True)
pizza_category = models.ForeignKey(PizzaCategory, on_delete=models.CASCADE, blank=True, null=True)
pizza_topping = models.ForeignKey(PizzaTopping, on_delete=models.CASCADE, blank=True, null=True)
def __str__(self):
return self.name
class VegPizza(models.Model):
name = models.CharField(max_length=60, unique=True)
pizza_category = models.ForeignKey(PizzaCategory, on_delete=models.CASCADE, blank=True, null=True)
veg_type = models.CharField(max_length=60, unique=True)
pizza_topping = models.ForeignKey(PizzaTopping, on_delete=models.CASCADE, blank=True, null=True)
def __str__(self):
return self.name
视图.py
@login_required(login_url="/login/")
def category_detail(request, category_id):
category = get_object_or_404(PizzaCategory, pk=category_id)
categorys = PizzaCategory.objects.all()
context = {
'categorys': categorys,
}
return render(request, 'pizzas/category_detail.html', context)
category_detail.html
<tbody>
{% for category in categorys.all %}
<tr>
<td>{{ category.name }}</td>
</tr>
{% endfor %}
</tbody>
解决方案
好的,尝试在您的 HTML 中编写:
{% for category in categorys %}
删除“.all”
对于 .py 文件,我也经常这样写:
return render(request, 'pizzas/category_detail.html', {
'categorys': categorys,
})
即使我知道上下文是最佳实践。
还 :
确保您已在 .py 文件的顶部导入模型,如下所示:
from .models import PizzaCategory
或者对他们所有人来说:
from .models import *
推荐阅读
- vagrant - Vagrant 无法访问 mongod 并希望我安装包 'mongodb-server'
- c++ - 具有来自另一个向量的更新数据的向量范围构造函数
- c# - 创建类的多个实例
- python-3.x - 向 Pandas DatetimeIndex 添加分钟
- php - Laravel 的文件管理器中没有显示缩略图
- linux - 在 Linux 终端中输入“cd..”而不是“cd ..”
- java - 访问字符串中超过 2^31 个字符的字符
- c - 如何在套接字 C 中看到 HTTP 请求
- angular - 从 Firestore 检索数据为 json
- angular - 如何获得反应形式的先前值?