【问题标题】:Django Auth: "This field is required"Django Auth:“此字段是必需的”
【发布时间】:2018-09-07 19:57:28
【问题描述】:

我想将自己的表单集成到 django Auth 系统中。它总是抛出一个错误:

登录 此字段为必填项。密码 此字段为必填项。

if request.method == 'POST': 上设置调试点不起作用(页面启动/加载除外)。

settings.py:

AUTH_USER_MODEL = 'Immo.ImmoUser'

ImmoUser 类:

from django.contrib.auth.models import AbstractUser

class ImmoUser(AbstractUser):
    pass

表格:

<form class="form-signin" action="index" method="post" style="/*! height: 100%; */margin-top: 20%;">
  <img class="mb-4" src="{% static 'Immo/images/houses.png' %}" style="background-color: black; padding: 5px;border-radius: 10px;" alt="" width="72" height="72">
  <h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>

  {% csrf_token %}

     {{ form.errors }}
  <label class="sr-only" for="{{ form.username.auto_id }}">{{ form.username.label }}:</label>

     <input id="{{ field.username }}" class="form-control" style="margin-bottom:3px;" autofocus="" placeholder="Login*" required="" type="text">


  <label class="sr-only" for="{{ form.password.auto_id }}">{{ form.password.label }}:</label>
     <input id="{{ field.password }}" class="form-control" style="margin-bottom:3px;" autofocus="" placeholder="Password*" required="" type="password">


  <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
  <p class="mt-5 mb-3 text-muted">© 2017-2018</p>
</form>

views.py:

def mylogin(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            user = authenticate(username=username, password=raw_password)
            return redirect('Immo/user/index')
    else:
        form = UserCreationForm()
    return render(request, 'Immo/index.html',  {'form': form} )

编辑: 这有效:

<form class="form-signin" action="index" method="post" style="/*! height: 100%; */margin-top: 20%;">
  <img class="mb-4" src="{% static 'Immo/images/houses.png' %}" style="background-color: black; padding: 5px;border-radius: 10px;" alt="" width="72" height="72">
  <h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>

  {% csrf_token %}

 {{ form.errors }}
  <label class="sr-only" for="{{ form.login.auto_id }}">{{ form.login.label }}:</label>

     <input name="login" id="{{ form.login.auto_id }}" class="form-control" style="margin-bottom:3px;" autofocus="" placeholder="Login*" required="" type="text">


  <label class="sr-only" for="{{ form.password.auto_id }}">{{ form.password.label }}:</label>
     <input name="password" id="{{ form.password.auto_id }}" class="form-control" style="margin-bottom:3px;" autofocus="" placeholder="Password*" required="" type="password">


  <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
  <p class="mt-5 mb-3 text-muted">© 2017-2018</p>
</form>

【问题讨论】:

    标签: django


    【解决方案1】:

    您的inputs 中缺少属性name

     <input name="username" ...>
    
     <input name="password" ...>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-02
      • 2019-04-13
      • 2016-04-29
      • 2012-12-02
      • 2021-04-10
      • 2019-06-11
      • 2020-10-10
      相关资源
      最近更新 更多