无法将数据传递到Django的Generic DetailView中

时间:2019-05-15 03:53:19

标签: python django django-views django-queryset

我正在尝试将两个模型传递给我的模板视图。问题在于视图中没有数据显示。

这是我尝试过的一些代码:

 # views.py
 class ServiceDetailView(generic.DetailView):
      model = Service
      template_name = "service_detail.html"

      def get_context_data(self, **kwargs):
           context = super(ServiceDetailView, self).get_context_data(**kwargs)
           context['prices'] = Price.objects.filter(service__serviceid=self.kwargs.get('pk'))
           return context

 #service_detail.html
 <h5>Other Hospital Descriptions</h5>
       <ul>
       {% for price in prices.price_value.all %}
          <li>price</li>
       {% endfor %}

什么都没有通过。 Service_id是主键,价格链接到服务表。

1 个答案:

答案 0 :(得分:0)

如果您已经通过了价格查询集,那么为什么要使用price_value?我认为这段代码可以正常工作:

 <h5>Other Hospital Descriptions</h5>
   <ul>
   {% for price in prices %}
      <li>{{ price }}</li>
   {% endfor %}

或者,如果Price模型在Service的{​​{1}}的ForeignKey中有一个related_name,那么以下代码也将起作用:

price_value

在这种情况下,您不需要传递 <h5>Other Hospital Descriptions</h5> <ul> {% for price in object.price_value.all %} <li>{{ price }}</li> {% endfor %} 查询集。

或者如果它没有任何related_name,那么Price也可以使用。