Джанго |у объекта 'function' нет атрибута 'get' |for request.POST.get ('email') - PullRequest
0 голосов
/ 16 октября 2019

Я скачал шаблон HTML-формы и использовал его на своей HTML-странице, получая от него данные.

Работает связанная с ним функция в view.py.

request.POST.get ('name') возвращает введенный текст, но выдает ошибку на странице перенаправления.

Функция в views.py

def login(request):
    if request.method == "POST":
        email = request.POST.get('email')
        password = request.POST.get('pass')
        print(email)
        print(password)
        return redirect
    return render(request, 'taskManagementWebApp_templates/login.html')

Вывод терминала при нажатии на кнопку

abc@gmail.com
123456789
Internal Server Error: /login/
Traceback (most recent call last):
  File "C:\Users\Akestech\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Users\Akestech\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\utils\deprecation.py", line 96, in __call__
    response = self.process_response(request, response)
  File "C:\Users\Akestech\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\middleware\clickjacking.py", line 26, in process_response
    if response.get('X-Frame-Options') is not None:
AttributeError: 'function' object has no attribute 'get'
[16/Oct/2019 12:16:55] "POST /login/ HTTP/1.1" 500 60650

Ошибка в веб-браузере Снимок экрана с ошибкой при вызове перенаправления

Ответы [ 2 ]

1 голос
/ 16 октября 2019

return redirect

Эта строка недействительна.

redirect должно быть примерно так:

redirect(to, *args, permanent=False, **kwargs)

Где to может быть:

  1. Модель: будет вызываться функция модели get_absolute_url ().
  2. Имя представления, возможно, с аргументами: reverse () будет использоваться для обратного разрешенияимя.
  3. Абсолютный или относительный URL, который будет использоваться как есть для местоположения перенаправления.

Ознакомьтесь с официальной документацией Django и обновите его в соответствии с вашими потребностями.

0 голосов
/ 16 октября 2019

Вы возвращаете redirect, то есть функцию, которая создает ответ перенаправления .

Вы должны вызвать его и вернуть результат, например,

return redirect("/some-path/")
...