如何将“python函数”放入Django项目的HTML文件中

如何将“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 %} 

您可以在视图的上下文中的功能添加结果或创建的Django模板标签包含标签doc和示例:custom-inclusion-tags