Отправка сообщения на форум Django не принимается просмотром
Я думал, что когда я нажимаю submit на форме (страница входа), это вызовет мой loginPage View и нажмет request.POST == 'Method'
, потому что метод формы - post, но он не делает этого, и я не могу войти.
Я немного запутался, так как это работало раньше, и я не трогал это с тех пор. Есть идеи, ребята?
У меня есть html-страница входа в систему под названием login_register.html
. Ниже,
<form method="POST" action="">
{% csrf_token %}
<div class="row center">
<input type="text" name="username" placeholder="Username" autocomplete="off"></input>
<input type="password" name="password" placeholder="Password" autocomplete="off"></input>
<input type="submit" class="button-6-custom" value="login"></input>
</div>
</form>
У меня также есть файл urls.py. Ниже,
path('login/', views.loginPage, name='login'),
И, наконец, у меня есть Вид. Ниже,
from django.contrib.auth.models import User
def loginPage(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
try:
user = User.objects.get(username = user)
except:
print("Error - user / password incorrect, does not exist.")
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
print("User does not exist.")
return render(request, 'base/login_register.html')
Вы должны заполнить атрибут action
в форме:
<form method="POST" action="{% url 'login' %}">
Примечание: имя URL также может быть 'appname:login'. Это зависит от вашей настройки URL.
В итоге я решил проблему. Проблему вызывал компонент строки поиска. Поигравшись с ним, я переместил его в папку и теперь все работает. Я думаю, что это результат, потому что раньше он находился в main.html, где все было статично, как текст ссылок и т.д. Я переместил его в свой home.html, где все динамично, и теперь все работает.
Спасибо всем за помощь. Это было довольно странно.