首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Django项目中将"python函数“放入HTML文件

如何在Django项目中将"python函数“放入HTML文件
EN

Stack Overflow用户
提问于 2017-07-28 18:05:20
回答 2查看 2.6K关注 0票数 0

在Django项目工作。我有一个index.html文件,它有一个名为"todas_academias“的变量,它是我创建的模型类的列表。目录: FKSC/ac_filiados/templates/ac_filiados/index.html

代码语言:javascript
复制
{% 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 s.py

不需要来理解这个函数的功能。

代码语言:javascript
复制
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 

现在,我只想在index.html文件中使用"ordenar()“函数,就像我尝试使用的那样,但是它没有工作。1)在使用"ordenar“函数之前,是否需要导入它?如果是这样的话,我如何导入它? 2)我应该将"ordenar“函数放在views.py中吗? 3)或者,是否有一种在HTML文件中使用这种函数的特定方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-28 18:43:35

您不应该从模板中调用函数。我会将ordenar通过上下文字典返回的内容传递给视图,如下所示:

views.py

代码语言:javascript
复制
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'})

然后,在模板中保留相同的代码,大致如下:

代码语言:javascript
复制
{% 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 %}
票数 3
EN

Stack Overflow用户

发布于 2017-07-28 18:41:40

您可以在视图的上下文中添加函数的结果,也可以创建django模板标记、包含标记、文档和示例:自定义包含标签

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45379780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档