社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

在Django中正确使用自定义标记时出现问题

Doh09 • 5 年前 • 1624 次点击  

摘要

我一直试图让一个自定义标签在Django工作,但似乎它不会正确注册。

索引文件看起来加载正确,只是抱怨标记注册不正确。

我应该做些别的事情来确保标签注册正确吗?


进一步信息

我得到的错误是:

或者装上这个标签?

我称之为标记的视图

{% show_loans %}

我试图在其中注册标记的python文件

不稳定.py

from .models import Loan
from datetime import datetime
from django import template

register = template.Library()

@register.simple_tag('loansTable.html')
def show_loans():
    l1 = Loan()
    l2 = Loan()
    l1.loanedDate_date = datetime.now
    l2.handinDate_date = datetime.now
    l2.loanedDate_date = datetime.now
    l2.handinDate_date = datetime.now
    loans2 =    { l1, l2 }
    return {'loans': loans2}

<ul>
    {% for loan in loans %}
        <li> {{ loan }} </li>
    {% endfor %}
</ul>

文件夹结构:

-app
--templates
---customTemplates
----index.html
----loansTable.html
--loansTable.py

谢谢你的帮助。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52924
 
1624 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Daniel Roseman
Reply   •   1 楼
Daniel Roseman    6 年前

这个错误告诉您到底是什么错误:您没有在使用它的模板(即index.html)中加载标记。

{% load loansTable %}
{% show_loans %}

@register.inclusion_tag('loansTable.html')
def show_loans():
    ...
Devang Padhiyar dan-klasson
Reply   •   2 楼
Devang Padhiyar dan-klasson    6 年前

不需要将标记注册到模板。你只需要从那里把它装进去。你已经在做了。

因此,只需替换:

@register.simple_tag('loansTable.html')

有了这个:

@register.simple_tag

您还需要将自定义标记放在 templatetags

在你的 index.html索引 i、 e.如果你在里面登记了标签 custom_tags.py 文件

{% load custom_tags %}

初始 .py文件以确保将目录视为Python包。