私はdjangoで小さなウェブサイトを開発しており、組み込みのログインビューを使用しています。標準のユーザーを登録し、正しい資格情報でログインしようとすると、「正しいユーザー名とパスワードを入力してください」というログインエラーが表示されます。この問題は、作成したスーパーユーザーには発生しません。エラーメッセージなしで正しい資格情報でログインすることができます。正しいユーザ名パスワードはログインしていませんdjango
これは私の登録ビューを持つviews.pyです。
from django.shortcuts import redirect, render, get_object_or_404
from django.contrib.auth.models import User
from .forms import UserForm
def register_user(request):
if request.method == "POST":
form = UserForm(request.POST)
if form.is_valid():
user = form.save()
return redirect('user_profile', pk=user.pk)
else:
form = UserForm()
return render(request, 'interport/register_user.html', {'form':form})
admin.py:
from django.contrib import admin
from django.contrib.auth.models import User
forms.py:
from django import forms
from django.contrib.auth.models import User
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ('first_name', 'last_name', 'email', 'username', 'password',)
urls.py:
from django.conf.urls import url
from django.contrib.auth import views as auth_views
from . import views
urlpatterns = [
url(r'^accounts/login/$', auth_views.login, name='login'),
url(r'^logout/$', auth_views.logout, {'next_page': '/'}, name='logout'),
url(r'^register_user$', views.register_user, name='register_user'),
url(r'^$', views.home, name='home'),
]
ログインするためのテンプレート:
{% extends "interport/base.html" %}
{% block content %}
<div class="container">
<div class="row">
<div class="center col s4 offset-s4 card-panel #fff8e1 amber lighten-5">
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
</div>
</div>
</div>
{% endblock %}
あなたはどこにログインしようとしていますか? djangoの管理ビューですか?スーパーユーザだけが管理者ビューにアクセスできることは間違いありません。 – deweyredman
@deweyredman 'is_admin' booleanは、ユーザーが管理者にアクセスできるようにします。スーパーユーザにはすべての権限があります。しかし、認証は別のものです。管理者にアクセスできないユーザーには、ログインするのはまったく問題ありません。 – allcaps