Python论坛  - 讨论区

标题:[zeuux-py:228] 使用django的模板,显示字典类型数据时key中有特殊符号怎么办?

2010年04月16日 星期五 16:16

Carson Li cutso在126.com
星期五 四月 16 16:16:22 CST 2010



如题!

########views.py


#coding:utf-8
import sys
from django.shortcuts import render_to_response
import email
from email.mime.text import MIMEText
import os
import poplib
import smtplib
import string



host = '211.147.247.183'
user = 'username在myhost.com'
passwd = 'password'


def index(request):
#show mail index page
return render_to_response('mail/index.html', locals())

def send(request):
#show mail index page
mail_to = request.POST.get('mail_to', '')
mail_subject = request.POST.get('mail_subject', '')
mail_content = request.POST.get('mail_content', '')
return render_to_response('mail/send.html', locals())

def check(request):
global host, user, passwd
p = poplib.POP3(host)
p.set_debuglevel(1)
p.user(user)
p.pass_(passwd)
ret = p.stat()

msgs = []
for i in range(ret[0], 0, -1):
hdr, message, octet = p.retr(i)
mail = email.message_from_string(string.join(message, '\n'))
subject = mail['subject']
encode_type = mail.get_content_charset()
mail_subject = unicode(email.Header.decode_header(subject)[0][0], encode_type).encode('utf-8')
#mail_message = unicode(mail.get_payload(), encode_type).encode('utf-8')
msg = {}
for j in mail.keys():

msg[j] = mail[j]
msg['id'] = i
msg['Subject'] = mail_subject
#msg.setdefault('Subject',mail_subject)
msgs.append(msg)



return render_to_response('mail/check.html', locals())







# check.html





Check mail



Mail List

{%for msg in msgs%} {%endfor%}
Date Subject From To Reply-To
{{msg.Date}} {{msg.Subject}} {{msg.From}} {{msg.To}} {{msg.Reply-To}}
问题 出在 {{msg.Reply-To}} 这里。报错: In template /var/www/public/templates/mail/check.html, error at line 17 Could not parse the remainder: '-To' from 'msg.Reply-To' -------------- 下一部分 -------------- 一个HTML附件被移除... URL: <http://www.zeuux.org/pipermail/zeuux-python/attachments/20100416/2737fb9c/attachment.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2010年04月16日 星期五 18:36

Wu Wei canri62在gmail.com
星期五 四月 16 18:36:55 CST 2010

Carson Li wrote:

> 
> 问题 出在 {{msg.Reply-To}}  这里。报错:
> 
> In template /var/www/public/templates/mail/check.html, error at line 17
> Could not parse the remainder: '-To' from 'msg.Reply-To'
> 

key中最好不含"-"。

如果非要这样,可以写一个template filter或tag:
比如

@register.filter
def dict_get(d, key):
    return d.get(key)

{{ dictionary|dict_get:"key-name" }}

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2010年04月17日 星期六 09:24

Carson Li cutso在126.com
星期六 四月 17 09:24:25 CST 2010

非常感谢 wu wei的帮助。使用自定义标签的确能够解决很多问题。

我突然想起我一直在php的smarty里用的filter, 原来道理都是一样的。




--

Carson. 



在2010-04-16 18:36:55,"Wu Wei" <canri62在gmail.com> 写道:
>Carson Li wrote:
>
>> 
>> 问题 出在 {{msg.Reply-To}}  这里。报错:
>> 
>> In template /var/www/public/templates/mail/check.html, error at line 17
>> Could not parse the remainder: '-To' from 'msg.Reply-To'
>> 
>
>key中最好不含"-"。
>
>如果非要这样,可以写一个template filter或tag:
>比如
>
>@register.filter
>def dict_get(d, key):
>    return d.get(key)
>
>{{ dictionary|dict_get:"key-name" }}
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: <http://www.zeuux.org/pipermail/zeuux-python/attachments/20100417/9e3727f3/attachment.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号