В рамках моего проекта, когда я отправляю в форму некоторые данные с символами, отличными от ascii, я заменяю все данные, не относящиеся к ascii, символом замены unicode \ ufffd.В представлении, которое получает данные из формы, у меня есть эта искаженная строка в request.POST.Кажется, я что-то упустил очевидное.
Моя среда:
- Python 2.6
- Django 1.3 alpha 1
- MySQL 5.1, база данных использует UTF-8 charset
Воспроизводили эту проблему, используя локальный сервер разработки и промежуточный сервер с 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}