<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>Портал Python-программистов : Веб-технологии : TurboGears</title>
<link>http://www.python.su/forum</link>
<description> Портал Python-программистов</description>
<docs>http://backend.userland.com/rss</docs>
<item>
<title>Веб-технологии :: TurboGears :: отличия TG2 от pylons?</title>
<author>strobe</author><link>http://www.python.su/forum/viewtopic.php?pid=44435#p44435</link>
<guid isPermaLink="false">44435@http://www.python.su/forum</guid>
<description>&lt;p&gt;собственно начал изучать pylons и неожиданно наткнулся на TG2 т.к. увидел, что он по сути включает в себя pylons - но беглое чтение документации не дало понимания в чем же основные отличия - только в том, что есть дополнительная прослойка частично поддерживающая апи TG1?&lt;br /&gt;&lt;br /&gt;в доке есть такой текст:&lt;br /&gt;Why not just merge with Pylons?&lt;br /&gt;Well, Pylons is committed to being officially template engine agnostic, ORM agnostic, etc. On the other hand TurboGears is committed to providing a “Full-Stack” for web development. So, the two communities have different, but compatible priorities. If you think about it Pylons provides a great set of tools for building a full-stack framework, and people had been asking for a full-stack Pylons implementation for a long time. And TurboGears 2 will provide that.&lt;br /&gt;&lt;br /&gt;что же тут подразумевается под full-stack?&lt;/p&gt;</description>
<pubDate>Wed, 03 Mar 2010 07:35:37 +0300</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: назначить PYTHON_EGG_CACHE</title>
<author>bw</author><link>http://www.python.su/forum/viewtopic.php?pid=37707#p37707</link>
<guid isPermaLink="false">37707@http://www.python.su/forum</guid>
<description>&lt;p&gt;А так нельзя сделать?&lt;br /&gt;Windows:\&amp;gt; set PYTHON_EGG_CACHE=//Rz-ts-appdata/tsappdata$/hildi/Anwendungsdaten/Python-Eggs&lt;br /&gt;&lt;br /&gt;Или так:&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; import sys&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; sys.environ['PYTHON_EGG_CACHE'] = '//Rz-ts-appdata/tsappdata$/hildi/Anwendungsdaten/Python-Eggs'&lt;br /&gt;&lt;br /&gt;Или даже так (правда что там за проблема с pkg_resources у вас я не осознал):&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; import pkg_resources&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; pkg_resources.set_extraction_path('//Rz-ts-appdata/tsappdata$/hildi/Anwendungsdaten/Python-Eggs')&lt;br /&gt;&lt;br /&gt;..bw&lt;/p&gt;</description>
<pubDate>Tue, 01 Dec 2009 16:46:49 +0300</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: назначить PYTHON_EGG_CACHE</title>
<author>hildi</author><link>http://www.python.su/forum/viewtopic.php?pid=37701#p37701</link>
<guid isPermaLink="false">37701@http://www.python.su/forum</guid>
<description>&lt;p&gt;Вот такой сюрприз к началу зимы.&lt;br /&gt;&lt;br /&gt;Директория с проектом лежит на сетевом диске, а диск переложили на другой сервер, в связи с чем при запуске проекта выдается ошибка, в которой предлагается назначить дефолтную переменную PYTHON_EGG_CACHE (cм. ниже) по указанному в ошибке адресу, но я не могу добраться до pkg_resources.py в setuptools-0.6c11-py2.5.egg, pspad этото файл не находит, например.&lt;br /&gt;&lt;br /&gt;Путь к новым python eggs мне известен: &lt;br /&gt;&amp;quot;//Rz-ts-appdata/tsappdata$/hildi/Anwendungsdaten/Python-Eggs&amp;quot;. &lt;br /&gt;&lt;br /&gt;Как это можно исправить?&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 35em"&gt;&lt;pre&gt;&lt;code&gt;H:\&amp;gt;python identity-tutorial/start-identity_tutorial.py
Traceback (most recent call last):
  File &amp;quot;identity-tutorial/start-identity_tutorial.py&amp;quot;, line 11, in &amp;lt;module&amp;gt;
    from identity_tutorial.commands import start, ConfigurationError
  File &amp;quot;H:\identity-tutorial\identity_tutorial\commands.py&amp;quot;, line 13, in &amp;lt;module&amp;gt;
    import turbogears
  File &amp;quot;c:\Python25\lib\site-packages\turbogears-1.0.7-py2.5.egg\turbogears\__init__.py&amp;quot;, line 6, in &amp;lt;module&amp;gt;
    from turbogears.controllers import expose, flash, validate, redirect, \
  File &amp;quot;c:\Python25\lib\site-packages\turbogears-1.0.7-py2.5.egg\turbogears\controllers.py&amp;quot;, line 9, in &amp;lt;module&amp;gt;
    from dispatch import generic, strategy, functions
  File &amp;quot;c:\Python25\lib\site-packages\PIL\__init__.py&amp;quot;, line 19, in &amp;lt;module&amp;gt;

  File &amp;quot;build\bdist.win32\egg\dispatch\interfaces.py&amp;quot;, line 1, in &amp;lt;module&amp;gt;
  File &amp;quot;c:\Python25\lib\site-packages\PIL\__init__.py&amp;quot;, line 3, in &amp;lt;module&amp;gt;
    # $Id: __init__.py 2134 2004-10-06 08:55:20Z fredrik $
  File &amp;quot;build\bdist.win32\egg\protocols\api.py&amp;quot;, line 15, in &amp;lt;module&amp;gt;
  File &amp;quot;build\bdist.win32\egg\protocols\adapters.py&amp;quot;, line 32, in &amp;lt;module&amp;gt;
  File &amp;quot;build\bdist.win32\egg\protocols\_speedups.py&amp;quot;, line 7, in &amp;lt;module&amp;gt;
  File &amp;quot;build\bdist.win32\egg\protocols\_speedups.py&amp;quot;, line 4, in __bootstrap__
  File &amp;quot;c:\Python25\lib\site-packages\setuptools-0.6c11-py2.5.egg\pkg_resources.py&amp;quot;, line 882, in resource_filename
  File &amp;quot;c:\Python25\lib\site-packages\setuptools-0.6c11-py2.5.egg\pkg_resources.py&amp;quot;, line 1351, in get_resource_filename
  File &amp;quot;c:\Python25\lib\site-packages\setuptools-0.6c11-py2.5.egg\pkg_resources.py&amp;quot;, line 1373, in _extract_resource
  File &amp;quot;c:\Python25\lib\site-packages\setuptools-0.6c11-py2.5.egg\pkg_resources.py&amp;quot;, line 962, in get_cache_path
  File &amp;quot;c:\Python25\lib\site-packages\setuptools-0.6c11-py2.5.egg\pkg_resources.py&amp;quot;, line 928, in extraction_error
pkg_resources.ExtractionError: Can't extract file(s) to egg cache

The following error occurred while trying to extract file(s) to the Python egg
cache:

  [Error 123] Die Syntax f&amp;#179;r den Dateinamen, Verzeichnisnamen oder die Datentr&amp;#245;gerbezeichnung ist falsch: '\\\\'

The Python egg cache directory is currently set to:

  \\qrz1100\ctxanwendungsdaten$\hildi\Python-Eggs

Perhaps your account does not have write access to this directory?  You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;И вас тоже с первым днем зимы :-)&lt;/p&gt;</description>
<pubDate>Tue, 01 Dec 2009 15:52:14 +0300</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: А TG2 кто-нибудь уже использует?</title>
<author>Naota</author><link>http://www.python.su/forum/viewtopic.php?pid=35665#p35665</link>
<guid isPermaLink="false">35665@http://www.python.su/forum</guid>
<description>&lt;p&gt;Очень интересно, а чем отличается TG2 от Pylons?&lt;/p&gt;</description>
<pubDate>Mon, 02 Nov 2009 10:54:05 +0300</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: TG+SA:  помогите разобраться с md5 password encryption, пожалста</title>
<author>hildi</author><link>http://www.python.su/forum/viewtopic.php?pid=35188#p35188</link>
<guid isPermaLink="false">35188@http://www.python.su/forum</guid>
<description>&lt;p&gt;Блин, как все просто! А я еще удивлялась, почему в сети практически никакой инфы про шифрование нет: потому что она нафиг не нужна, оказывается!&lt;br /&gt;Черт, у меня же сначала все правильно было.&lt;br /&gt;Основная проблема была в ДНК, в смысле, что при редактировании app.cfg ТГ не перезапускал приложение автоматически и изменения не вступали в силу, а я это не заметила за редактированием других модулей - ведь если контроллер или там модель отредактировать, то приложение перезапускалось само, а если только апп.кфг - то нет.&lt;br /&gt;Тьфу.&lt;br /&gt;&lt;br /&gt;Огромное нечеловеческое спасибо за терпение!&lt;/p&gt;</description>
<pubDate>Fri, 23 Oct 2009 14:51:36 +0400</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: TG+SA:  помогите разобраться с md5 password encryption, пожалста</title>
<author>PooH</author><link>http://www.python.su/forum/viewtopic.php?pid=35097#p35097</link>
<guid isPermaLink="false">35097@http://www.python.su/forum</guid>
<description>&lt;p&gt;Попробовал на старом проекте включить md5 encryption:&lt;br /&gt;в app.cfg указал&lt;br /&gt;identity.saprovider.encryption_algorithm='md5'&lt;br /&gt;&lt;br /&gt;там же проверил что указаны мои классы пользователей:&lt;br /&gt;identity.saprovider.model.user=&amp;quot;rieltiko.model.User&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;identity.saprovider.model.group=&amp;quot;rieltiko.model.Group&amp;quot;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;identity.saprovider.model.permission=&amp;quot;rieltiko.model.Permission&amp;quot;&lt;br /&gt;&lt;br /&gt;запустил, все работает, пароли в базе шифрованные. больше никаких телодвижений не понадобилось.&lt;br /&gt;уберите шифрование из метода saveuser, в _set_password в строчке:&lt;br /&gt;self._password = identity.encrypt_password(password)&lt;br /&gt;берется алгоритм указанный в конфиге.&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 13.5em"&gt;&lt;pre&gt;&lt;code&gt;pooh@pooh$ tg-admin shell
In [1]: from rieltiko.model import *
In [2]: s = User()
In [2]: s.password = '123'
Loading: rieltiko.model.VisitIdentity
In [3]: s.password
Out[3]: u'202cb962ac59075b964b07152d234b70'&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
<pubDate>Thu, 22 Oct 2009 07:52:09 +0400</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: TG+SA:  помогите разобраться с md5 password encryption, пожалста</title>
<author>hildi</author><link>http://www.python.su/forum/viewtopic.php?pid=35052#p35052</link>
<guid isPermaLink="false">35052@http://www.python.su/forum</guid>
<description>&lt;p&gt;Спасибо огромное! :-)&lt;/p&gt;</description>
<pubDate>Wed, 21 Oct 2009 17:38:40 +0400</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: TG+SA:  помогите разобраться с md5 password encryption, пожалста</title>
<author>PooH</author><link>http://www.python.su/forum/viewtopic.php?pid=35051#p35051</link>
<guid isPermaLink="false">35051@http://www.python.su/forum</guid>
<description>&lt;p&gt;Сегодня уже поздно, завтра на работе посмотрю исходники&lt;/p&gt;</description>
<pubDate>Wed, 21 Oct 2009 17:34:10 +0400</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: TG+SA:  помогите разобраться с md5 password encryption, пожалста</title>
<author>hildi</author><link>http://www.python.su/forum/viewtopic.php?pid=35049#p35049</link>
<guid isPermaLink="false">35049@http://www.python.su/forum</guid>
<description>&lt;p&gt;Видимо, этот метод self._password = identity.encrypt_password(password) ничего не шифрует, в нем же конкретный провайдер не указан. &lt;br /&gt;Ну и в базу-то пишется clear text, значит, действительно шифрования не происходит.&lt;br /&gt;&lt;br /&gt;Я бы сама очень хотела понять.&lt;/p&gt;</description>
<pubDate>Wed, 21 Oct 2009 17:30:39 +0400</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: TG+SA:  помогите разобраться с md5 password encryption, пожалста</title>
<author>PooH</author><link>http://www.python.su/forum/viewtopic.php?pid=35046#p35046</link>
<guid isPermaLink="false">35046@http://www.python.su/forum</guid>
<description>&lt;blockquote&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;hildi написал:&lt;/h4&gt;&lt;p&gt;Тогда в базу пишется юзер с clear text паролем.&lt;br /&gt;coбсно, saveuser - это единственное место, где шифрование явно указывается, больше нигде, и как раз это меня и настораживает.&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;Как единственное? В saveuser&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 4.5em"&gt;&lt;pre&gt;&lt;code&gt;user.password = identity.current_provider.encrypt_password (kw['password'])&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;При этом вызывается метод _set_password класса User, а в нем&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 4.5em"&gt;&lt;pre&gt;&lt;code&gt;self._password = identity.encrypt_password(password)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Или я чего-то не понимаю, или одно из двух.&lt;/p&gt;</description>
<pubDate>Wed, 21 Oct 2009 17:20:50 +0400</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: TG+SA:  помогите разобраться с md5 password encryption, пожалста</title>
<author>hildi</author><link>http://www.python.su/forum/viewtopic.php?pid=35042#p35042</link>
<guid isPermaLink="false">35042@http://www.python.su/forum</guid>
<description>&lt;p&gt;Тогда в базу пишется юзер с clear text паролем.&lt;br /&gt;coбсно, saveuser - это единственное место, где шифрование явно указывается, больше нигде, и как раз это меня и настораживает.&lt;/p&gt;</description>
<pubDate>Wed, 21 Oct 2009 17:06:28 +0400</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: TG+SA:  помогите разобраться с md5 password encryption, пожалста</title>
<author>PooH</author><link>http://www.python.su/forum/viewtopic.php?pid=35039#p35039</link>
<guid isPermaLink="false">35039@http://www.python.su/forum</guid>
<description>&lt;p&gt;Меня терзают смутные подозрения, что у вас пароли шифруются дважды. Попробуйте в saveuser убрать шифрование(encrypt_password) и создать пользователя.&lt;/p&gt;</description>
<pubDate>Wed, 21 Oct 2009 16:57:18 +0400</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: TG+SA:  помогите разобраться с md5 password encryption, пожалста</title>
<author>hildi</author><link>http://www.python.su/forum/viewtopic.php?pid=35037#p35037</link>
<guid isPermaLink="false">35037@http://www.python.su/forum</guid>
<description>&lt;p&gt;Сабж.&lt;br /&gt;&lt;br /&gt;Включила мд5 шифрование тут:&lt;br /&gt;&lt;br /&gt;app.cfg&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 4.5em"&gt;&lt;pre&gt;&lt;code&gt;identity.saprovider.encryption_algorithm='md5'&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Включила шифрование при создании нового юзера:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 19.5em"&gt;&lt;pre&gt;&lt;code&gt;    @expose(template=&amp;quot;cmts.templates.adduser&amp;quot;)
    @identity.require(identity.in_group(&amp;quot;admin&amp;quot;))
    def saveuser(self, **kw):
        #       .... blabla

        if kw['password'] != &amp;quot;&amp;quot;:
           user.password = identity.current_provider.encrypt_password (kw['password'])
        else:
           session.close()
           return dict(adduser_widget = adduser_widget, message=&amp;quot; Empty password field!&amp;quot;)
        session.commit()&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;В результате пароли пишутся в базу в зашифрованном виде, но залогиниться с обыкновенным, незашифрованным паролем нельзя - пишет:&lt;br /&gt;2009-10-21 13:47:19,239 turbogears.identity.saprovider INFO Passwords don't match for user: admi&lt;br /&gt;2009-10-21 13:47:19,239 turbogears.identity WARNING The credentials specified weren't valid&lt;br /&gt;&lt;br /&gt;Понять можно :-) Если рассуждать логически, то при логине clear text password должен зашифровываться, чтобы совпасть с тем, что хранится в базе в зашифрованном виде (хотя если тупо скопировать зашифрованный пароль типа &amp;quot;ce365c0b37f3ea94bce7995ff4420c25&amp;quot; из базы, то с ним тоже залогиниться не получается)&lt;br /&gt;&lt;br /&gt;Короче, я застряла.&lt;br /&gt;&lt;br /&gt;То, что в ниже описанном классе указано - это недостаточно, видимо.&lt;br /&gt;model.py&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 35em"&gt;&lt;pre&gt;&lt;code&gt;class User(object):

    def permissions(self):
        p = set()
        for g in self.groups:
            p |= set(g.permissions)
        return p
    permissions = property(permissions)

    def by_email_address(cls, email):
        return cls.query.filter_by(email_address=email).first()
    by_email_address = classmethod(by_email_address)

    def by_user_name(cls, username):
        return cls.query.filter_by(user_name=username).first()
    by_user_name = classmethod(by_user_name)

    def _set_password(self, password):
        self._password = identity.encrypt_password(password) #&amp;lt;--- вот тут

    def _get_password(self):
        return self._password

    password = property(_get_password, _set_password)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Читала вот тут: &lt;a href="http://docs.turbogears.org/1.0/RoughDocs/IdentityEncryptedPassword?highlight="&gt;http://docs.turbogears.org/1.0/RoughDoc &amp;hellip; highlight=&lt;/a&gt;(password)|(encryption) и еще разные доки на docs.turbogears.org и nabble, но ничего подходящего не нашла :-(&lt;/p&gt;</description>
<pubDate>Wed, 21 Oct 2009 16:23:32 +0400</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: Ошибка при работе проекта на python2.5. На 2.4 без вопросов.</title>
<author>pythonwin</author><link>http://www.python.su/forum/viewtopic.php?pid=34815#p34815</link>
<guid isPermaLink="false">34815@http://www.python.su/forum</guid>
<description>&lt;blockquote&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;eXeC001er написал:&lt;/h4&gt;&lt;p&gt;@tg.identity.require(model.has_permission('can_view'))&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;а зачем ты в моделях импортируешь has_permission?&lt;br /&gt;попробуй так:&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 4.5em"&gt;&lt;pre&gt;&lt;code&gt;@tg.identity.require(tg.identity.conditions.has_permission('can_view'))&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;и покажи код, который находится выше метода vol_data- возможно ошибка в нем&lt;br /&gt;PS какая версия ОС и turbogears&lt;/p&gt;</description>
<pubDate>Fri, 16 Oct 2009 13:19:09 +0400</pubDate>
</item>
<item>
<title>Веб-технологии :: TurboGears :: Ошибка при работе проекта на python2.5. На 2.4 без вопросов.</title>
<author>eXeC001er</author><link>http://www.python.su/forum/viewtopic.php?pid=34765#p34765</link>
<guid isPermaLink="false">34765@http://www.python.su/forum</guid>
<description>&lt;p&gt;Есть некий проект нормально и без проблем работает на python2.4, но на 2.5 ветке отказывается.&lt;br /&gt;&lt;br /&gt;есть в коде следующая конструкция: (отрабатывает без проблем что на 2.4 что на 2.5)&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 9em"&gt;&lt;pre&gt;&lt;code&gt;@tg.expose(template=template)
@tg.identity.require(model.has_permission('can_view'))
def vol_graphs(self, **data):
...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;А есть вот такая (нормально отрабатывает только на 2.4, на 2.5 вызывает Exception ):&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 9em"&gt;&lt;pre&gt;&lt;code&gt;@tg.expose()
@tg.identity.require(model.has_permission('can_view'))
def vol_data(self, **data):
...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Exception:&lt;br /&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;Код:&lt;/h4&gt;&lt;div class="scrollbox" style="height: 6em"&gt;&lt;pre&gt;&lt;code&gt;@tg.identity.require(model.has_permission('can_view'))
TypeError: 'NoneType' object is not callable&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Все перепроверил, ругается именно на конструкции второго вида.&lt;br /&gt;&lt;br /&gt;Куда копать? Что не так?&lt;/p&gt;</description>
<pubDate>Thu, 15 Oct 2009 13:04:17 +0400</pubDate>
</item>
</channel></rss>