在Django项目中工作。我有一个index.html文件,其中包含一个名为" todas_academias"的变量,它是我创建的模型类列表。 目录:FKSC / ac_filiados / templates / ac_filiados / index.html
<md-layout id = "container" style = "max-height:40px;">
<md-layout md-column md-flex-xsmall="100" md-flex-small="100" md-flex-medium="33" md-flex-large="33" md-flex-xlarge="33">
<md-list>
<md-list-item class = "md-display-2">levi</md-list-item>
<router-link :to = "{ name: 'About' }"><md-row>About</md-row></router-link>
<md-row >Customers</md-row >
<md-row >Contact Us</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
<md-row >Support</md-row >
</md-list>
</md-layout>
<md-layout md-column md-flex-xsmall="100" md-flex-small="100" md-flex-medium="33" md-flex-large="33" md-flex-xlarge="33">
<md-row class = "md-display-2" >Using levi</md-row >
<md-row >Business</md-row >
<md-row > <router-link class = "" :to = "{ name: 'Product' }">
Features
</router-link> </md-row>
<md-row >Pricing</md-row >
<md-row >Pricing</md-row >
</md-layout>
<md-layout md-column md-gutter md-flex-xsmall="100" md-flex-small="100" md-flex-medium="33" md-flex-large="33" md-flex-xlarge="33">
<md-column class = "md-display-2">legal</md-column>
<md-column></md-column>
<md-column></md-column>
</md-layout>
我创建了一个名为&#34; ordenar&#34;的函数。在另一个目录中的python文件中。 目录:FKSC / ac_filiados / functions.py
您不需要了解此功能的用途。
{% 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 %}
现在,我只想使用&#34; ordenar()&#34;我尝试使用index.html文件中的函数,但它没有用。 1)我是否需要导入&#34; ordenar&#34;使用之前的功能吗?如果是这样,我该如何导入它? 2)我应该放置&#34; ordenar&#34; views.py中的函数? 3)或者,是否有在HTML文件中使用此类函数的特定方法?
答案 0 :(得分:1)
您可以在视图的上下文中添加函数的结果,也可以创建django模板标记包含标记doc和示例:custom-inclusion-tags
答案 1 :(得分:1)
您不应该从模板中调用函数。我会通过上下文字典将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 %}