Django Все POST-запросы возвращают TypeError - PullRequest
0 голосов
/ 14 октября 2018

У меня есть 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...