![](/img/trans.png)
[英]How to call a “modal” from class within views.py in Django?
[英]how to call function of views.py using modal <form action=“ ”>?
我在 base.html 中有一個登錄模式。 單擊登錄按鈕時,模式會打開。 我希望當表單提交時 action='login' 應該調用 views.py 的登錄 function 但是當我嘗試提交時,它將頁面重定向到不存在的登錄頁面('http://127.0. 0.1:8000/登錄')。 我想知道如何從模態調用視圖的登錄 function,如果我沒有錯,那么 action='' 屬性調用 function 而不是頁面。 我嘗試從 urls.py 中刪除登錄路徑。
<div class="modal fade" id="modalLoginForm">
<div class="modal-dialog" role="document">
<div class="modal-content">
<!-- Default form login -->
<form class="text-center border border-light" action="login" method="post" autocomplete="off">
{% csrf_token %}
<!-- Email -->
<input type="text" name="username" class="form-control mb-4" placeholder="E-mail" required>
<!-- Password -->
<input type="password" name="password" class="form-control mb-4" placeholder="Password" required>
<div class="d-flex justify-content-around">
<div>
<!-- Remember me -->
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="defaultLoginFormRemember" name="remember_me">
<label class="custom-control-label" for="defaultLoginFormRemember">Remember me</label>
</div>
</div>
<div>
<!-- Forgot password -->
<a href="">Forgot password?</a>
</div>
</div>
<!-- Sign in button -->
<input class="btn btn-info btn-block my-3" type="submit" value="Sign in">
</form>
<!-- Default form login -->
</div>
</div>
</div>
def login(request):
if request.method == "POST":
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
return redirect('/')
else:
messages.info(request, 'invalid credentials')
return redirect('index')
else:
return render(request, 'index.html')
urlpatterns = [
path('', views.login, name='login'),
path('register',views.register, name='register'),
path('logout', views.logout, name='logout')
]
urlpatterns = [
path('', include('camroid_app.urls')),
path('accounts/', include('accounts_app.urls')),
path('admin/', admin.site.urls),
]
我如何從<form action='login'>
調用視圖的 login()
因為它引發錯誤: The current path, login, didn't match any of these.
如何直接從<form action='login'>
調用視圖的 function
嘗試:
action="{% url 'login' %}"
或者
action="/"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.