【发布时间】:2011-08-10 09:35:42
【问题描述】:
在我的项目中,当我向表单提交一些带有非 ascii 字符的数据时,我将所有非 ascii 数据替换为 unicode 替换字符 \ufffd。在从表单接收数据的视图中,我在 request.POST 中有这个格式错误的字符串。似乎我错过了一些明显的东西。
我的环境:
- Python 2.6
- Django 1.3 alpha 1
- MySQL 5.1,数据库使用 UTF-8 字符集
已使用本地开发服务器和运行 Apache+mod_wsgi 的中间服务器以及 Firefox 4 和 Chrome 11 重现此问题。
我应该从哪里解决问题?谢谢。
更新:下面是我正在使用的代码 -
@render_to('mail/new_message.html')
@login_required
def new_message(request, user_id):
user = request.user
if request.method == 'POST':
form = MessageForm(request.POST, request.FILES)
# exclude attachment from init instance, because we need instance id
# for saving attachment
form._meta.exclude = ['attachment']
if form.is_valid():
new_msg = form.save()
new_msg.sender = user
if form.cleaned_data['attachment']:
new_msg.attachment = form.cleaned_data['attachment']
new_msg.save()
message_sent.send(sender=None,instance=new_msg)
return HttpResponseRedirect(reverse(messages))
else:
initial = {}
if user_id:
initial['receivers'] = [user_id,]
form = MessageForm(initial=initial)
return {'form': form}
【问题讨论】:
-
已经用代码更新了我的问题,谢谢。