提问者:小点点

如何将Django模板标记传递给不在URLPatterns中的html文件?


我对姜戈很陌生,如果你能读到我的问题,我将非常感激! 我在Django有一个CRM项目,我有一个从侧面加载的导航栏,它写在一个单独的html文件(navbar.html)中,并使用{%include'CRM/navbar.html'%}添加到main.html(一个包含网站每个页面中所有常见前端项的文件)中。 导航栏

有一个“Add+”按钮,它被认为是一个下拉菜单。 这种下拉菜单的选项应该来自一个使用模板标记的名为“sale_steps”的模型。

问题是:我很难将Sales_Steps导入到navbar.html中,下面是代码的简略说明:

在views.py中

def NavBar(request):
Sale_steps = Sales_Step.objects.all()
context = {'sale_step':Sale_steps}
return render(request, 'crm/navBar.html',context)

在urls.py中

urlpatterns = [
path('', crm_views.home_page),
path('home/',crm_views.home_page),
path('sales/', crm_views.sales_page),
path('all_queries/',crm_views.all_queries_page),
path('Queries/',crm_views.all_queries_page),
path('checkQuery/',crm_views.check_query_page),
path('Customers/',crm_views.all_customers_page),
path('checkCustomer/',crm_views.check_customer_page),


path('blank/',crm_views.blank_page),

]

在navbar.html中

{% for s in sale_step %}
       <a class="dropdown-item" href="#">{{s.Name}}</a>
        {% endfor %}

提前非常感谢!


共1个答案

匿名用户

在navbar.html中:

<!DOCTYPE html>
<html>
<head>
<style>
.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover .dropdown-content {
  display: block;
}

.dropdown:hover .dropbtn {
  background-color: #3e8e41;
}
</style>
</head>
<body>

<h2>Dropdown Menu</h2>
<p>Move the mouse over the button to open the dropdown menu.</p>

<div class="dropdown">
  <button class="dropbtn">ADD+</button>
  <div class="dropdown-content">
        {% for s in sale_step %}
       <a class="dropdown-item" href="#">{{s}}</a>
        {% endfor %}
  </div>
</div>

</body>
</html>

views.py

def NavBar(request):
    Sale_steps = Sales_Step.objects.values_list('Name', flat=True)
    context = {'sale_step':Sale_steps}
    return render(request, 'crm/navBar.html',context)

在urls.py中

path('NavBar', views.NavBar, name='NavBar'),