我有很多模板可以扩展基本.html。我想要基本.html模板来容纳我的全局导航,并使全局导航中的文本和链接基于模型部门(即CharField
模型中的 id 将用作全局导航中的按钮文本,并且 id 将用于构建 URL)。我认为标签可能有用,但我最终得到的是这样的(是的,我是 Django 和 Python 的新手):
当前_tags.py
from django import template
# Import your model
from libs.display.models import Division
from django.db import models
register = template.Library()
@register.simple_tag
def do_get_divisions(self):
d = Division.objects.all()
mylist = []
for each in d:
mylist.append(str(each.DivisionValue))
return my list
此时,我正在尝试获取要打印的每个对象中的文本值,因为我无法获取或使用模板中的对象,如下所示。
基本.html
<!DOCTYPE html>
<html>
<head>
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}style.css" />
</head>
<body>
{% load current_tags %}
<p>{% do_get_divisions "" %}</p> **THIS ACTUALLY PRINTS mylist**
{% for each in do_get_divisions %} **THIS DOESN'T PRINT ANYTHING**
<p>{{ each }}</p>
{% endfor %}
{% block content %}
{% endblock %}
</body>
</html>
我确信有更好的方法来基于 Django 中的模型进行全局导航。我基本上想获取所有的 Division 对象并将它们放入<ul>
用作我的全球导航基本.html。我对 Django 不太熟悉,但是我的views.py不要帮助我,因为我正在渲染其他模板,而不是基本.html,正在延伸基本.html。对于它的价值,这是一个views.py, where /显示/info.html模板扩展基本.html:
# Create your views here.
from django.http import HttpResponse
from apps.pulldata.models import Data
from django.shortcuts import render, get_object_or_404
from django.http import Http404
def info(request, group_id):
group = get_object_or_404(Data, pk=group_id)
s = group.XInGroup.all()
return render(request, 'display/info.html', {'Group': group, 's': s})