###環境
python 3.7
前提・実現したいこと
pythonのDjangoでウェブサイトを作ろうとしています。
今回は2人でフロントエンドとバックエンドに分かれて作業していて自分はバックエンド側でDjangoを使っています。フロントエンド側はHTMLでだいたい書かれています。
実現したいことは、トップページのログインボタンを押すとポップアップが表示されそこで名前とパスワードを打つことでログインできるようにしたいのですがいろいろなサイトをみてもログインページに飛ぶ方法しかわからずポップアップを使ってログインはできないんじゃないかと思ってきたのですがどきればポップアップを使っていきたいのでもし方法などがあるんでしたら教えていただきたいです。
追記
html
1<div id="login"> 2 <div class="modal"> 3 <div id="login-close-modal"> 4 <i class="fas fa-times"></i> 5 </div> 6 <div id="login-form"> 7 <h2>LOGIN</h2> 8 <form action="#"> 9 <input class="form-control" type="text" placeholder="Login ID"> 10 <input class="form-control" type="password" placeholder="password"> 11 <div id="login-btn">LOGIN</div> 12 </form> 13 <h3>--------------------or--------------------</h3> 14 <div id="new">Create New Account</div> 15 </div> 16 </div> 17 </div>
これはトップページのコードの一部です。ここでポップアップを表示させているのですがどのようにしてログインと結びつけるのかがわかりません。できれば新規アカウント登録も教えていただきたいです。
###さらに追記
html
1<form action="{% url 'blogs:login' %}" method="POST"> 2 {% csrf_token %} 3 <input type="text" name="username" placeholder="Login ID"> 4 <input type="password" name="password" placeholder="password"> 5 {% for error in form.non_field_errors %} 6 <div> 7 <p>{{ error }}</p> 8 </div> 9 {% endfor %} 10 <input type="submit" id="login-btn" value="LOGIN"> 11 </form>
python
1views.py 2 3class Login(LoginView): 4 form_class = LoginForm 5 template_name = 'blogs/login.html'
python
1forms.py 2 3class LoginForm(AuthenticationForm): 4 def __init__(self, *args, **kwargs): 5 super().__init__(*args, **kwargs) 6 for field in self.fields.values(): 7 field.widget.attrs['class'] = 'form-control' 8 field.widget.attrs['placeholder'] = field.label
python
1urls.py 2 3path('login/', views.Login.as_view(), name='login'),
python
1settings.py 2 3LOGIN_URL = '/login' 4LOGIN_REDIRECT_URL = '/' 5LOGOUT_REDIRECT_URL = '/'
このようにしたところポップアップで正しい情報を入れたときはログインできるのですが、間違った情報を入れると /login のurlに飛ばされて見た目も別の login.html になってしまいます。 template_name = blogs/index.html にすると見た目は index.html なのですがページ url が /login となってしまいます。 next= も保持されないので毎回トップページに戻ってきてしまいます。どうしたらいいでしょうか?