2014-01-09 61 views
3

这是我的Python Django的自定义模板标签代码Python的Django的自定义模板标签register.assignment_tag不工作

from django import template 
from ipc.declarations.models import MainDeclaration 
from django.shortcuts import get_object_or_404 

register = template.Library() 


def section_settings(declarationId,user): 
    declaration = get_object_or_404(MainDeclaration, pk=declarationId, user=user) 
    businessInfo = declaration.GetOrCreateBusinessInfo() 
    sections = declaration.GetSections() 

    return sections 

register.assignment_tag(section_settings) 

现在,我得到一个错误

register.assignment_tag(section_settings) [Thu Jan 09 06:50:44 2014] [error] [client 127.0.0.1] AttributeError: 'Library' object has no attribute 'assignment_tag'

这正常工作与我开发服务器应用程序,但在生产服务器上传相同的代码时无法正常工作。

请指导我。

+0

你有不同的django版本吗? – Duikboot

+0

你在生产中使用了什么Django版本? 1.4中增加了'assignment_tag'。 –

+0

@Daniel Roseman它是1.3 – curiousguy

回答

7

尽管这个问题已经有几年了,但最近人们可能会再次看到这个错误,但出于不同的原因。这里的错误再次:

AttributeError: 'Library' object has no attribute 'assignment_tag' 

您可以升级到2.0的Django后会出现这个错误。这是因为assignment_tag was deprecated in Django 1.9,并在Django 2.0中删除:

的Django 1.4添加了assignment_tag帮助缓解存储在一个模板变量结果模板标签的创建。 simple_tag()帮手已经获得了同样的能力,使assignment_tag过时。使用assignment_tag的标签应更新为使用simple_tag

请注意,simple_tag的行为与Django 1.8中的assignment_tag类似,但不相同。

相关问题