如何使用GAE将django过滤器更新为django 1.2

时间:2011-03-03 14:26:56

标签: python django google-app-engine

嗨我得到了以下过滤器,它与django 0.96(GAE)配合使用,并在GAE + django 1.2的布局错误上生成代码。现在我想更新过滤器,以便它与django 1.2一起使用。请提供任何信息,请您这样做。

过滤器:

def news(n):
    url = os.environ.get('HTTP_HOST') if os.environ.get('HTTP_HOST') else os.environ['SERVER_NAME']
    tld = url[url.rfind('.'):]    
    try:        
        if url == 'localhost:8080' or url.endswith('alltfunkar.com'):
            result = urlfetch.fetch('http://news.google.se/?output=rss')    
        elif tld != '.com' and tld != '.se' and tld != '.cl' :
            result = urlfetch.fetch('http://news.google.com'+tld+'/?output=rss') 
        else:        
        #result = urlfetch.fetch('http://news.google'+tld+'/?output=rss')
            result = urlfetch.fetch('http://news.google.com/?output=rss')        
        if result.status_code == 200:
            dom = minidom.parseString(result.content)
            item_node = dom.getElementsByTagName("item")
            try:
                random_1=random.choice(item_node)
                rss1_link = random_1.childNodes[1].firstChild.data
                rss1_text = random_1.childNodes[0].firstChild.data
                return '<a href="'+rss1_link+'">'+rss1_text+'</a>'
            except IndexError,e:
                return ''
    except urlfetch.Error, e:
        pass

register.filter(news)

模板用法

{{a|news|fix_ampersands|truncatewords_html:8}

在这里解决并完成了帮助!非常感谢: enter image description here

1 个答案:

答案 0 :(得分:2)

当然,如果您明确指出了您所获得的输出的“错误”,那将会有所帮助。

我的猜测是它的自动调整,因为你会知道你是否阅读了从0.96升级到1.0的指南。将输出标记为安全:

from django.utils.safestring import mark_safe
...
return mark_safe('<a href="'+rss1_link+'">'+rss1_text+'</a>')

或更多Python:

return mark_safe('<a href="%s">%s</a>' % (rss1_link, rss2_text))