ユーザー名とパスワードを挿入すると、ホームページにリダイレクトされず、ログインページにとどまり、URLにそのようなメッセージが表示されます
http://localhost:8000/login/?csrfmiddlewaretoken=B6RMXDzgZjnk2QzbmbcesMqsRUOtVH3Q1FBaS1HCB6CXXujpbOziiHLH8VR1oLzC&username=admin&password=laughonloud24
Powershellでは、このように表示されます
System check identified no issues (0 silenced).
May 25, 2018 - 11:50:07
Django version 2.0.5, using settings 'a.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[25/May/2018 11:50:10] "GET /login/?csrfmiddlewaretoken=B6RMXDzgZjnk2QzbmbcesMqsRUOtVH3Q1FBaS1HCB6CXXujpbOziiHLH8VR1oLzC&username=admin&password=laughonloud24 HTTP/1.1" 200 446
Performing system checks...
エラーはありませんが、期待どおりに動作しません。
models.py
from django.db import models
# Create your models here.
class login_model(models.Model):
username = models.CharField(max_length=200)
password = models.CharField(max_length=200)
forms.py
from django import forms
from .models import login_model
class LoginForm(forms.ModelForm):
class Meta:
model = login_model
fields = ['username','password']
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('login/',views.login_view,name = 'login_url' ),
path('',views.home, name = 'home_url'),
]
views.py
from django.shortcuts import render,redirect
from .forms import LoginForm
from django.contrib.auth import authenticate,login
# Create your views here.
def home(request):
return render(request,'home.html')
def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST or None)
if form.is_valid():
uusername = form.cleaned_data.get('username')
ppassword = form.cleaned_data.get('password')
user = authenticate(request,username=uusername,password=ppassword)
if user is None:
login(request,user)
return redirect('home url')
else:
print('Error')
else:
form = LoginForm()
return render(request,'login.html',{'form':form})
テンプレート
login.html
<form>
{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Login">
</form>
home.html
{% if user.is_authenticated %}
<h1>Hi {{user.username}} </h1>
{% else %}
<h1> Hi Ola Amigo </h1>
<p>Please Login <a href="{% url 'login_url' %}">Login</a> </p>
{% endif %}
回答 1 件
関連記事
- Djangoエラーレポートのログメッセージを特定する
- Django RESTフレームワーク:応答が定義されていないエラー
- apache2で実行されているdjangoRESTフレームワークがクライアントに完全な応答を返さない
- Django ORMエラー:主キーにNULLを挿入できません
- djangoのpostgressqlの構成中にエラーが発生しました
- 常に「見つかりません」エラーに応答するDjangoRESTフレームワークモデルビューセットの追加アクション
- API Django Rest Framework on CloudRunのシャットダウン
- Djangoでの非同期ロギング
- アプリのホーム/インデックスに反応するように指示されたDjangoRest Framework404ページの処理
- Djangoフレームワークはすべての製品をリストし、それぞれのすべての売上を合計します
関連した質問
- DjangoAdminで多対多モデルのすべてのフィールドを表示するにはどうすればよいですか?
- Djangoフォームのドロップダウンのラベルを変更するにはどうすればよいですか?
- Djangoモデルフォームベースのシステムをサインアップ用の生のHTMLベースのフォームシステムに変換します
- Djangoで1対1のテーブルフィールド値にアクセスする
- DetailViewを介してURLパスを作成しようとしていますが、HTMLページで重複する値を取得しています
- Djangoのデフォルトのモデルフォームを使用せずに、Djangoの同じページで複数のフォームを処理する
- Django:フォームが無効な場合にフォームがリセットされないようにする
- Djangoは同じファイルでNameERRORをモデル化しますか?
- djangoチャネルを使用してPython36からPython37にアップグレードする際のSynchronousOnlyOperationエラー
- Django管理者の承認を得て登録するにはどうすればよいですか?
フォームのメソッドを
POST
として設定する必要があります 、それ以外の場合はGET
です デフォルトでは: