Django从模板导入模型

戴维布朗

在我的django项目中,我有一个base.html,我的所有模板都从{.extended'base.html'%}扩展。在该基本模板中,我想对所有算法列表进行此操作。

{% for algorithm in algorithms %}
   # list them out as links in nav bar
{% endfor %}

但是我没有将算法传递给基础,因为它只是扩展了其他模板。

我不知道该怎么解决。我的想法是在基本模板中使用{%load%},基本上。

from algorithms.models import Algorithm
from django import template


register = template.Library()

def GetAlgorithmObjects():

  a = Algorithm.objects.all()

  return {'algorithms': a}

我不确定负载如何工作,这可以解释这种故障。您实际上将如何实现这一目标,或者我应该走另外一条路。

斯托伊科夫

您可以使用包含标签https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#inclusion-tags

在您的应用程序的algorithmscreate目录中,templatetags并放置一个名为的文件algorithms_tags.py(当然,在此目录中必须有一个名为的文件__init__.py

然后文件的内容类似于您编写的内容:

from algorithms.models import Algorithm
from django import template

register = template.Library()

@register.inclusion_tag('algorithms/show_algorithms.html')
def show_algorithms():
    a = Algorithm.objects.all()
    return {'algorithms': a}

然后,您需要一个模板,algorithms/templates/algorithms/show_algorithms.html其中包含以下内容:

{% for algorithm in algorithms %}
   # list them out as links in nav bar
{% endfor %}

您可以base.html按以下方式使用它

{% load algorithms_tags %}

{% show_algorithms %}

一些解释:

  • {% load algorithms_tags %}“algorithms_tags”是的名称.py中创建的文件templatetags目录(不包括扩展名)
  • {% show_algorithms %}“show_algorithms”是函数的装饰着名register.inclusion_taginclusion_tag.py

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django无法导入模型

来自分类Dev

Django圆形模型导入

来自分类Dev

从django.template导入模板

来自分类Dev

django抽象模型继承导入

来自分类Dev

Django的。ImportError。无法导入模型

来自分类Dev

在Django中将模型导入表格

来自分类Dev

在Django中将模型导入表格

来自分类Dev

数据无法导入Django模型

来自分类Dev

将CSV导入Django模型

来自分类Dev

导入Django的模型类-Python

来自分类Dev

Python Django夹层模型导入

来自分类Dev

Django模板中的嵌套模型

来自分类Dev

从模板使用Django模型方法

来自分类Dev

创建包时导入Django模板

来自分类Dev

使用csvImporter将csv导入django模型

来自分类Dev

在Django的settings.py中导入模型

来自分类Dev

如何将Django模型导入脚本?

来自分类Dev

使用csvImporter将csv导入django模型

来自分类Dev

为外部导入的表创建django模型

来自分类Dev

Django 2:无法导入模型并保存它

来自分类Dev

Django模板按模型字段动态过滤

来自分类Dev

Django在模板中使用模型变量

来自分类Dev

从模板访问Django CreateView中的模型名称

来自分类Dev

检查元素是否在模型中-Django模板

来自分类Dev

Django模板不会显示我的模型变体

来自分类Dev

Django jsonify模板内的单个模型对象

来自分类Dev

模板中的Django模型不可迭代

来自分类Dev

Django:防止模板使用模型方法

来自分类Dev

Django中相同模型的UpdateView的不同模板