RecursionError в views.py django - PullRequest
       11

RecursionError в views.py django

0 голосов
/ 28 сентября 2019

Это вызывает у меня ошибку рекурсии.

Сначала предложили ввести аргумент 'request' в signup (), но затем я получил новую ошибку.

Вотмой код:

from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
from .forms import signup
from django.utils.html import format_html
from django.contrib import messages
from .models import signup

def index(request):
    return render(request, 'myapp/index.html')

def signup(request):
    if request.method == 'POST':
        register_form = signup(request.POST)
        if register_form.is_valid():
            post = register_form.save()
            message = format_html("Hi {0}, Thank you for signing up with us! See your profile <a href=''>{1}</a>".format(register_form.cleaned_data['name'], "here"))
            return render(request, 'myapp/register.html', {'signup':register_form, 'message': message})
        else:
            message = register_form.errors
            form = signup(request)
            return render(request, 'myapp/register.html', {'signup':form, 'message': message})

    else:
        form = signup(request)

    return render(request, 'myapp/register.html', {'signup':form})

throws:

if request.method == 'POST': RecursionError: максимальная глубина рекурсии, превышенная в сравнении

1 Ответ

4 голосов
/ 28 сентября 2019

Ваша проблема в этих строках

...
from .models import signup
...
def signup(request):
...
 if request.method == 'POST':
        register_form = signup(request.POST)
...

Вы переопределяете функцию signup (), заставляя ее бесконечно вызывать себя.Вам нужно будет переименовать один из этих методов.

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