У меня есть шаблон TreeView и шаблон itemList. Я хочу, чтобы эти два шаблона отображались на одной странице, поэтому я попытался включить шаблон itemList в шаблон Treeview, используя {% include %}
. Когда я нажимаю на листовой узел в Treeview, itemList должен отображать соответствующий контент.
До сих пор я заставлял эти два шаблона работать независимо, но теперь я застрял в том, как объединить их вместе, вот мой urls.py
url(r'^marketgroups',views.show_marketgroups,name='marketgroups'),
path('marketgroup/<int:pk>',views.itemListView.as_view(),name='invtypes_list'),
и views.py
def show_marketgroups(request):
return render(request,"sde/marketgroups.html",{'marketgroups':Marketgroups.objects.all()})
class itemListView(generic.ListView):
model = Invtypes
template_name = 'sde/invtypes_list.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
pk = self.kwargs['pk']
context['invtypes'] = Invtypes.objects.filter(marketgroupid=pk).order_by('typeid')
return context
, а вот и рыночные группы. html
<div class="row" >
<div class="">
{% load mptt_tags %}
<ul id="mktUL">
{% recursetree marketgroups %}
<li>
{% if node.is_leaf_node %}
<li><span class=""><a href="{{ node.get_absolute_url }}">{{ node.nameid }} {{ node.marketgroupid }}</a></span></li>
{% else %}
<li><span class="mktcaret">{{ node.nameid }}</span>
<ul class="nested">
<li>{{ children }}</li>
</ul>
</li>
{% endif %}
</li>
{% endrecursetree %}
</ul>
</div>
<div class="">
<p>itemList supposed to be load here</p>
{% include "sde/invtypes_list.html" with node.pk %}
</div>
</div>
Я не понял, как чтобы указать {% include %}
загружать разные значения pk, возможно, используйте AJAX?
Мой текущий метод - вызвать get_absolute_url в ссылках на листовые узлы, чтобы, когда я нажимаю на листовой узел, он открывает invtypes_list. html и отображает соответствующий контент, хотя он может работать, но я хочу, чтобы эти два шаблона отображались на одной странице.
Это мой invtypes_list. html
{% for i in invtypes %}
<li>
<a href="">{{ i.typename }} {{ i.typeid }}</a>
<p id="price"></p>
</li>
{% endfor %}
Но когда я пытаюсь использовать {% include %}
для загрузки invtypes_list. html в рыночные группы. html, invtypes_list. html ничего не показывает, даже если я даю ему существующее значение pk.
Когда я добавить содержимое stati c (например, <p>HELLO</p>
) в invtypes_list. html, будет отображаться содержимое stati c, я думаю, это демонстрирует, что {% include %}
работает, но значение pk передано неправильно? Это правильно? Как это исправить? пожалуйста, помогите мне.