2006年01月10日 星期二 14:48
在 06-1-10,Albert Lee<hanzhupeng at gmail.com> 写道: > ok , 我已经做了一个简单的 扩展tag 的例子了,我想可以解决了 > > 1。 在 app templatetags 目录下增加 announce_extra.py > > #coding=utf-8 > from django.core import template > from django.core.template import loader, Context > > register = template.Library () > > from django.models.announce import announces > > @register.tag(name="announce_sect") > def do_current_time(parser, token): > return AnnounceSectNode() > > class AnnounceSectNode(template.Node ): > def __init__(self): > pass > def render(self, context): > t = loader.get_template('announce') > c = Context({ > 'announces': announces.get_list() > }) > > return t.render(c) > > 2. 在要用到的模板中: > >Announces {% announce_sect %}.
> > > 主要是自定义一个 > Node类型,然后注册一个自定义tag函数,返回这个Node类型就可以了,这样就可以把不同的app的内容分开了 > > 在这个基础上,应该可以继续自定义实现Portal的功能 > 好呀。我想使用tag的话,只要修改下模板可以很方便地对不同的tag进行组合。另外如果实现的复杂点,可以做出象for之类或传入参数的tag来,以满足不同条件的应用。这样的适用性更强。 -- I like python! My Blog: http://www.donews.net/limodou NewEdit Maillist: http://groups.google.com/group/NewEdit
2006年01月13日 星期五 20:26
一步一步学习(六) 学习至: 注意 PYTHONPATH 需要设为 newtest 的父目录,我的 newtest 的全路径为:d:\test\newtest 。你的可能与我不同,请注意修改。不这样做不行,manage.py只是在用它的时候才起作用,但在命令行下使用 Python<http://www.python.org/>则需要手工设置。因此可以把这种设置写成一个批处理就好了。 进入 Python <http://www.python.org/> >>> from django.models.wiki import wikis 这一步的时候.报错提示: Traceback (most recent call last): File "", line 1, in -toplevel- from django.models.wiki import wikis File "c:\python24\lib\site-packages\django- 0.90-py2.4.egg\django\models\__init__.py", line 1, in -toplevel- from django.core import meta File "c:\python24\lib\site-packages\django- 0.90-py2.4.egg\django\core\meta\__init__.py", line 1, in -toplevel- from django.conf import settings File "c:\python24\lib\site-packages\django- 0.90-py2.4.egg\django\conf\settings.py", line 29, in -toplevel- raise EnvironmentError, "Environment variable %s is undefined." % ENVIRONMENT_VARIABLE EnvironmentError: Environment variable DJANGO_SETTINGS_MODULE is undefined. 之前已经在cmd中进到newtest目录分别输入: set PYTHONPATH=C:\python24\tools\scriprs # 此为newtest父目录 set DJANGO_SETTINGS_MODULE=newtest.settings 请教错误原因.谢谢 在06-1-10,limodou <limodou at gmail.com> 写道: > > 在 06-1-10,Albert Lee<hanzhupeng at gmail.com> 写道: > > ok , 我已经做了一个简单的 扩展tag 的例子了,我想可以解决了 > > > > 1。 在 app templatetags 目录下增加 announce_extra.py > > > > #coding=utf-8 > > from django.core import template > > from django.core.template import loader, Context > > > > register = template.Library () > > > > from django.models.announce import announces > > > > @register.tag(name="announce_sect") > > def do_current_time(parser, token): > > return AnnounceSectNode() > > > > class AnnounceSectNode(template.Node ): > > def __init__(self): > > pass > > def render(self, context): > > t = loader.get_template('announce') > > c = Context({ > > 'announces': announces.get_list() > > }) > > > > return t.render(c) > > > > 2. 在要用到的模板中: > > > > Announces {% announce_sect %}.
> > > > > > 主要是自定义一个 > > Node类型,然后注册一个自定义tag函数,返回这个Node类型就可以了,这样就可以把不同的app的内容分开了 > > > > 在这个基础上,应该可以继续自定义实现Portal的功能 > > > > > 好呀。我想使用tag的话,只要修改下模板可以很方便地对不同的tag进行组合。另外如果实现的复杂点,可以做出象for之类或传入参数的tag来,以满足不同条件的应用。这样的适用性更强。 > > -- > I like python! > My Blog: http://www.donews.net/limodou > NewEdit Maillist: http://groups.google.com/group/NewEdit > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060113/86b958e7/attachment-0001.htm
Zeuux © 2025
京ICP备05028076号