【发布时间】:2015-09-17 21:09:13
【问题描述】:
我正在使用 Django 创建一个网站,我想通过 Django 模板从我的视图(创建它的位置)传递一个 python 对象并传递给 Dajax 调用。问题是当它进入 dajax 时,它已经变成了 unicode 类型。
在我的模板中
<script>
var emailer = "{{emailer|safe}}"; <---If I omit the quotes here then I get a javascript error.
sessionStorage.setItem('emailer',emailer);
$(document).ready(function(){
$('.send').on('click', function(e){
var emailer = sessionStorage.getItem('emailer');
Dajaxice.InterfaceApp.sendEmail(submitverify,{'emailer':emailer});
});
});
</script>
dajax 函数
@dajaxice_register(method='GET')
def sendEmail(emailer):
logger.warning("type: %s, %s" % (type(emailer),emailer))
email_body = "message"
emailer.addToMessage(email_body)
emailer.send()
message = "Email Sent"
return json.dumps({'message':message})
这里记录器语句返回:type: <type 'unicode'>, <Utils.SIMPL_Emailer instance at 0x103142ab8>。有什么办法可以解决这个问题,以便我得到我的电子邮件对象而不是 unicode 字符串?
【问题讨论】:
-
等一下,您想将实际的序列化 Python 对象传递到您的模板中,然后通过 JavaScript 重新输入吗?这似乎非常不安全。你不能只传递最少的必要信息来在
sendEmail函数中重新创建电子邮件对象吗?
标签: javascript python django unicode