在基本html文件django中调用模型

在基本html文件django中调用模型,html,django,django-views,django-templates,Html,Django,Django Views,Django Templates,我试图找出如何在我的基本html文件中调用我的一个模型,该模型扩展到我的其他模板html文件,以便在我的base.html文件中的导航栏中实现购物车项目的查看。通常,我会使用上下文数据在视图中调用模型(我使用的是基于类的视图),但对于base.html文件,这是不可能的 如果它是一个带有视图的模板,则将使用此代码 {% for item in orderitems %} <div class="ps-product__thumbnail"> <a hre

我试图找出如何在我的基本html文件中调用我的一个模型,该模型扩展到我的其他模板html文件,以便在我的base.html文件中的导航栏中实现购物车项目的查看。通常,我会使用上下文数据在视图中调用模型(我使用的是基于类的视图),但对于base.html文件,这是不可能的

如果它是一个带有视图的模板,则将使用此代码

{% for item in orderitems %}
<div class="ps-product__thumbnail">
  <a href="#"> 
     <img src="img/products/clothing/7.jpg" alt="">
  </a>
</div>
<div class="ps-product__content">
  <a class="ps-product__remove" href="#">
    <i class="icon-cross"></i>
  </a>
  <a href="product-default.html">MVMTH Classical Leather Watch InBlack</a>
  <p><strong>Sold by:</strong> YOUNG SHOP</p><small>1 x $59.99</small>
</div>
{% endfor %}
{%用于orderitems%中的项目]
出售人:YOUNG SHOP

1 x 59.99美元 {%endfor%}
(很抱歉花了这么长时间才把事情弄清楚)

因为您仍然需要传入上下文数据,所以我建议使用扩展技术。例如:

#views.py
#不一定是一样的,它们只是例子
类OrderBaseView(ListView):
template\u name=“order\u base.html”
#添加模型、身份验证等等
def获取上下文数据(自身,**kwargs):
#处理上下文数据
返回上下文
#此类扩展了上面的视图,因此
#将扩展get_context_data方法。
类NextLevel视图(OrderBaseView):
template\u name=“next\u level.html”
#你的其他手柄在这里
#您可以重新继承get\u context\u数据调用!
类其他视图(OrderBaseView):
#这里有更多自定义句柄


{%include“order_base.html”%}
请重新检查模板语法

因此,您将在
base.html
中包含上下文数据(只是名称不同,因为它不是通用的基本html),但是您可以在多个位置重用它,如果您正确处理它,上下文将进入

奖金

假设您的代码变得更加复杂,需要处理更多的上下文。以下是您应该做的:

#views.py
类OrderBaseView(ListView):
# ...
def get_context_data_basic(自我,**kwargs):
#处理基本上下文
返回上下文
类NextLevel视图(OrderBaseView):
# ...
#此方法必须使用此名称,因为
#Django将自动查找它。这个
#基本句柄的名称不同
#防止歧义。
def获取上下文数据(自身,**kwargs):
#调用父上下文数据视图
#记住将数据传输到主上下文
#注意名称重叠
temp=获取上下文数据基本(自身,**kwargs)
context=temp.copy()
#你的其他手柄在这里
# ...
返回上下文

我没有在html文件中创建模型,我在模板中的forloop标记中调用了它的对象,这是我想在base.html中执行的一个示例。我想你不了解我使用base.html的上下文,base.html是我在项目中扩展到其他模板的文件,这意味着它没有视图。它使用扩展到的模板视图,并作为模板的一部分呈现。是的,请让我们更正。