如何将“python函数”放入Django项目的HTML文件中
问题描述:
在Django项目中工作。我有一个名为“todas_academias”的变量index.html文件,它是我创建的模型类的列表。 目录:FKSC/ac_filiados /模板/ ac_filiados/index.html的如何将“python函数”放入Django项目的HTML文件中
{% for academia in ordenar(todas_academias) %}
<td>{{ academia.nome_academia }}</td>
<td>{{ academia.estado }}</td>
<td>{{ academia.cidade }}</td>
<td>{{ academia.professor }}</td>
<td>{{ academia.num_alvara }}</td>
{% endfor %}
,我创建了一个在别的目录下的Python文件名为 “ordenar” 功能。 目录:FKSC/ac_filiados/functions.py
你不需要了解这个功能。
def ordenar(todas_academias):
lista = []
for academia in todas_academias:
lista = lista + [academia.num_alvara]
nova_list = lista.sort()
nova_lista_academias = []
for reg in nova_list:
for academia in todas_academias:
if reg == academia.num_alvara:
nova_lista_academias = nova_lista_academias + [academia]
return nova_lista_academias
现在,我只想用“ordenar()”功能的index.html文件,如我试图用,但没有奏效。 1)使用前需要导入“ordenar”函数吗?如果是这样,我该如何导入它? 2)我应该在view.py中放置“ordenar”函数吗? 3)或者,有没有在HTML文件中使用这种函数的具体方式?
答
你不应该叫从模板的功能。我会通过什么ordenar通过语境词典返回到视图像这样:
views.py
def ordenar(todas_academias):
lista = []
for academia in todas_academias:
lista = lista + [academia.num_alvara]
nova_list = lista.sort()
nova_lista_academias = []
for reg in nova_list:
for academia in todas_academias:
if reg == academia.num_alvara:
nova_lista_academias = nova_lista_academias + [academia]
return nova_lista_academias
def some_view(request):
...
YOUR OTHER CODE
...
return render(request, 'yourtemplate.html', {ordenar: 'ordenar'})
然后在你的模板,你会保持相同的代码或多或少:
{% for academia in ordenar %}
<td>{{ academia.nome_academia }}</td>
<td>{{ academia.estado }}</td>
<td>{{ academia.cidade }}</td>
<td>{{ academia.professor }}</td>
<td>{{ academia.num_alvara }}</td>
{% endfor %}