У меня есть VPS с Ubuntu 16.04 + Nginx + Python3.6 + Uwsgi + Supervisor + Django
У меня есть несколько таких представлений:
def login_view(request):
data = {}
if request.POST:
password = request.POST['password']
plogin = request.POST['login']
try:
user = User.objects.get(username=plogin)
except User.DoesNotExist:
data['error'] = 'DoesNotExist!'
return render(request, 'error.html', data)
except Exception as e:
data['error'] = e
return render(request, 'error.html', data)
else:
if user.check_password(password):
login(request, user)
else:
data['error'] = 'Wrong password!'
return render(request, 'error.html', data)
data['success'] = 'Success!'
return render(request, 'error.html', data)
return render(request, 'accounts/login.html', data)
И html:
<form name='formAuth' action='' method='POST'>
{% csrf_token %}
<input type='text' name='login' required='required'>
<input type='password' name='password' required='required'>
<input type='submit'>
</form>
И если я получаю запрос get (открывая URL с этим представлением), это нормально.Но если я делаю POST, он возвращает мне пустую страницу без HTML-кода.Когда я проверял логи uwsgi, это было так:
[pid: 3552|app: 0|req: 7/25] 172.68.245.224 () {58 vars in 1129 bytes} [Sun Oct 14 23:20:30 2018] GET /accounts/login/ => generated 3551 bytes in 5 msecs (HTTP/1.1 200) 5 headers in 292 bytes (1 switches on core 0)
Traceback (most recent call last):
File "/home/django/venv/lib/python3.6/site-packages/django/core/handlers/wsgi.py", line 150, in __call__
start_response(status, response_headers)
TypeError: http header must be encodable in latin1
[pid: 3551|app: 0|req: 5/26] 172.68.245.224 () {66 vars in 1309 bytes} [Sun Oct 14 23:22:49 2018] POST /accounts/login/ => generated 0 bytes in 21 msecs (HTTP/1.1 200) 4 headers in 124 bytes (0 switches on core 0)
Да, сайт содержит кириллический текст, но на моей локальной машине все нормально.Думаю, эта проблема связана с настройками сервера.
Помогите, пожалуйста)
ps Установлены кириллические локали и кодировка nginx - utf-8