Как исправить UnboundLocalError в / signup / в Django - PullRequest
1 голос
/ 14 октября 2019

Я хочу создать пользователя, например, зарегистрироваться или зарегистрироваться, когда я нажму кнопку отправки. Я получил эту ошибку:

UnboundLocalError at / signup /

Я хочу зарегистрировать пользователя:

local variable 'usercustom' referenced before assignment

вот мой Views.py

def signup(request):
    registered = False

    if request.method == "POST":
        user_form = UserForm(request.POST or None)
        custom_form = UserCustom(request.POST or None)

        if user_form.is_valid() and custom_form.is_valid():
            user = user_form.save(commit=False)
            user.save()

            custom = custom_form.save(commit=False)
            custom.user = user
            custom.save()

            registered = True
        else:
            print(user_form.errors,custom_form.errors)

    else:
        user_form = UserForm()
        usercustom = UserCustom()

    return render(request,'form.html',{'user_form':user_form,'usercustom':usercustom,'registered':registered})

вот мой Form.html

{% extends "base.html" %}
{% block body_block %}
      <div class="content-section">
        {% if registerd %}
          <h1>Thank Your For registering!</h1>
        {% else %}
          <h1>Register Here</h1>
          <h3>Fill out the form</h3>

          <form enctype="multipart/form-data" method="POST">
            {% csrf_token %}
            {{ user_form.as_p }}
            {{ usercustom.as_p }}
            <input type="submit" value="Register!" class="btn btn-danger">
          </form>
        {% endif %}
      </div>
{% endblock %}

1 Ответ

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

Это потому, что usercustom не объявляется при попытке отправить POST-запрос. Вам необходимо переименовать переменную custom_form в usercustom. Я упростил ваш код для вас.

def signup(request):
    registered = False
    if request.method == "POST":
        user_form = UserForm(request.POST or None)
        usercustom = UserCustom(request.POST or None)

        if user_form.is_valid() and usercustom.is_valid():
            user = user_form.save(commit=False)
            user.save()

            custom = usercustom.save(commit=False)
            custom.user = user
            custom.save()

            registered = True
        else:
            print(user_form.errors, usercustom.errors)

    else:
        user_form = UserForm()
        usercustom = UserCustom()

    return render(request,'form.html',{'user_form':user_form,'usercustom':usercustom,'registered':registered})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...