在Django中创建自定义模板标签

时间:2018-07-01 09:40:06

标签: python django django-templates

我是Django的新手,我正在尝试在Django中创建自定义标签

我的自定义标记文件templatetag/custom_tag.py

from django import template
from model_file.models import my_Model

register = template.Library()

@register.simple_tag
def get_custom_tag_fn():

    return my_Model.objects.all()

我的html文件

{% load custom_tag %}
    {% get_custom_tag_fn as queries %}
    {% for query in queries %}
      {{query.json_my_model_data}}
    {% endfor %}  

此代码没有任何输出或错误。谁能指出我做错了什么。

有关其他信息,我的model.py类似于

from django.db import models
from jsonfield import JSONField

class my_Model(models.Model):
    json_my_model_data = JSONField()

1 个答案:

答案 0 :(得分:0)

看来my_Model没有val1字段,如果您想在数据模型{{中显示json_my_model_data字段,则可能需要将模板更改为以下内容1}}:

my_Model

如果{% load custom_tag %} {% get_custom_tag_fn as queries %} {% for query in queries %} {{query.json_my_model_data}} # to get model's `json_my_model_data` content. {% endfor %} 查询集从数据库中至少有一个{{query.json_my_model_data}}对象,则仅执行json_my_model_data并显示queries的内容。

More on custom template tags

希望有帮助。