【问题标题】:Django 3.0 ValueErrorDjango 3.0 值错误
【发布时间】:2020-04-08 13:42:25
【问题描述】:

大家好,django 3.0 有问题。我正在尝试创建一个用户注册页面,但我不断收到错误。这些是我的代码

users/views.py

from .form import UserRegisterForm
from django.shortcuts import render, redirect


# Create your views here.


def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('login')
        else:
            form = UserRegisterForm()
        return render(request, 'register.html', {'form': form})

form.py

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User


class UserRegisterForm(UserCreationForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']

register.html

{% extends 'website/base.html' %}


{% block body %}
    {% include 'website/nav_bar.html' %}

    <div>
        <form method="post">
            {% csrf_token %}
            <fieldset>
                <legend>join now</legend>
                {{ form.as_p }}
            </fieldset>
            <button type="submit">submit</button>
        </form>
    </div>
{% endblock body %}

ERROR MESSAGE

【问题讨论】:

  • 您的注册中目前没有任何GET 请求句柄
  • 是的,因为如果请求处理程序是 GET ,则没有 return 语句。它将为/register/ 中的所有GET 请求返回None 对象。

标签: django valueerror


【解决方案1】:

这里

def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('login')
        else:
            form = UserRegisterForm()
        return render(request, 'register.html', {'form': form})

你忘记了普通GET请求的情况:)

类似的东西

def register(request):
    form = UserRegisterForm()

    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('login')
    return render(request, 'register.html', {'form': form})

更多详情请访问文档网站https://docs.djangoproject.com/en/3.0/topics/forms/#the-view

【讨论】:

  • @DadaOluwabukunmiEmmanuel 所以你可以接受答案,如果它有效:)
猜你喜欢
  • 2021-01-27
  • 2020-08-26
  • 2023-04-07
  • 1970-01-01
  • 2020-12-01
  • 2019-04-26
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多