我正在努力显示外键项目列表。我可以显示类别列表。但是我无法显示属于此类别的时间列表。例如,如果我们认为它们属于同一类别,我想显示属于该类别的模型:
models.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
views.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>
答案 0 :(得分:0)
好的, 尝试在您的 HTML 中编写:
{% for category in categorys %}
删除“.all”
我也经常这样写 .py 文件:
return render(request, 'pizzas/category_detail.html', {
'categorys': categorys,
})
即使我知道上下文是最佳实践。
还有:
确保您已在 .py 文件顶部导入模型,如下所示:
from .models import PizzaCategory
或者这对他们所有人来说:
from .models import *