Как передать теги Django Template в файл html, которого нет в URLPatterns? - PullRequest
0 голосов
/ 17 июня 2020

Я серьезно новичок в Django, поэтому буду признателен, если вы читаете мой вопрос! У меня есть проект CRM, над которым я работаю в Django, и у меня есть панель навигации, которая загружается сбоку, записывается в отдельный файл html (navBar. html) и добавляется в main. html ( файл, содержащий все стандартные элементы интерфейса на каждой странице веб-сайта) с помощью {% include 'crm / navBar. html'%}. Панель навигации

Есть кнопка «Добавить +», которая должна действовать как раскрывающееся меню. Параметры такого раскрывающегося меню должны поступать из модели под названием «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 Ответ

0 голосов
/ 17 июня 2020

панель навигации. html:

<div id="mySidenav" class="sidenav" style="text-align:left;">
        <span onclick="showme('ADD')"  class="dropdown-btn"><i class="fa fa-tachometer-alt" style="float:left;width:8%;"></i>&emsp;DADD+   <i class="fa fa-caret-down"></i></span>
            <div id="ADD" class="dropdown-container" style="display:none;"></div>

</div>
<script>

$(document).ready(function(){
    $.get("{% url 'stack:navBar' %}", function(data, status){
            list = JSON.stringify(data);
            context = JSON.parse(list);
            // node
            var node;
            // textnode
            var href;
            // style
            var style;
            // TX
            alert(context['sale_step']);
            while (context['sale_step']) {
                node = document.createElement("a");// Create a <a> node

                textnode = document.createTextNode("- "+ context['sale_step']);  // Create a text node

                node.appendChild(textnode);

                href = document.createAttribute("href");       // Create a "class" attribute

                href.value = "www.google.com"; // Set the value of the class attribute

                node.setAttributeNode(href);

                style = document.createAttribute("style");

                style.value = "font-size:16px;";

                node.setAttributeNode(style);

                document.getElementById("ADD").appendChild(node);
                i++;
                }
     });
});


function showme(ID) {
    var x = document.getElementById(ID);
    if (x.style.display === "none") {
      x.style.display = "block";
       } else {
     x.style.display = "none";
  }
  }
</script>

views.py

def navBar(request):
    context = {}
    sale = Ricavi.objects.values_list('quantita', flat=True)
    for x in sale:
        context['sale_step'] = x
    print(context)
    return JsonResponse(context)

main. html:

{% include 'TOPFOLDERNAME/navbar.html' %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...