【发布时间】:2015-08-01 00:26:50
【问题描述】:
我试图让这个模板调用一个过去曾以多对多关系工作的函数。这次是多对一。
detail.html 模板
{{ icecreamflavor.name.all }}
观点:
from django.shortcuts import get_object_or_404, render
from django.views import generic
from .models import IceCream, IceCreamFlavor
# Create your views here.
class IndexView(generic.ListView):
template_name = 'ice_cream/index.html'
context_object_name = 'ice_cream_list'
def get_queryset(self):
return IceCream.objects.order_by('brand')
class DetailView(generic.DetailView):
model = IceCreamFlavor
template_name = 'ice_cream/detail.html'
2 个型号:
class IceCream(models.Model):
ice_cream_id = models.AutoField(primary_key=True)
brand = models.CharField(max_length=200)
def __unicode__(self):
return self.brand
class IceCreamFlavor(models.Model):
ice_cream_flavor_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=200)
rating = models.DecimalField(max_digits=3, decimal_places=1)
brand = models.ForeignKey(IceCream)
def __unicode__(self):
return self.name
这是一个多对一的关系,我相信在我看来,我在 DetailView 的模型上有些东西搞砸了。我想使用 objects.all() 方法在详细视图中简单地调用冰淇淋的所有口味。
什么都没有出现。教程中的文档让我有点困惑。 IndexView 工作并显示所有品牌;只需要 DetailView 来调出所有的味道;我稍后会格式化。作为记录,detail.html 模板中的{{ icecreamflavor }} 确实只带来了一种风格,而不是全部。我相信这与实例有关..
【问题讨论】:
-
您有 2 个视图,您使用的是哪一个?索引视图? DetailView 只向模板发送 1 个对象,即您要查看详细信息的对象。并且在模板中你不能对数据库进行查询,你必须从视图中发送 objects.all(),就像在 IndexView 中写着
def get_queryset()的部分 -
我正在尝试使用 DetailView。
标签: django django-templates django-views