Django 表单编码



我正在使用表单将数据发送到我的视图。当我发送字符ó时,它会作为字符打印在视图中。知道如何正确编码吗?

views.py:

# -*- coding: utf-8 -*-
def myView(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
title = form.cleaned_data.get('title')
print(title) # prints � instead of ó

forms.py:

# -*- coding: utf-8 -*-
class MyForm(forms.ModelForm):
title = forms.CharField(required=False)

myform.html:

<form action="/results/" method="post" content='text/html; charset=UTF-8'>>{% csrf_token %}
{{  form.non_field_errors }}
<div class="fieldWrapper">
{{ form.title.errors }}
<label for="id_name">Title</label>
{{ form.title }}
</div>
<button type="submit">
<i class="fa fa-thumb-tack"></i> Search
</button>
</form>

我能够通过将其添加到 html 表单来解决问题:

accept-charset="UTF-8"

正确的表单如下所示:

<form action="/results/" method="post" content='text/html; charset=UTF-8' accept-charset="UTF-8"> {% csrf_token %}
{{  form.non_field_errors }}
<div class="fieldWrapper">
{{ form.title.errors }}
<label for="id_name">Title</label>
{{ form.title }}
</div>
<button type="submit">
<i class="fa fa-thumb-tack"></i> Search
</button>
</form>

最新更新