Django логин ничего не показывает - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть вход, регистрация и выход на моей домашней странице. Регистрация работает нормально, но логин не работает. когда я запускаю сервер, он работает, но ничего не показывает, никаких ошибок или чего-либо на странице входа в систему, которая предлагает пользователю ввести имя пользователя и пароль.

views.py

def userLogin(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username = username, password = password)
        if user is not None:
            login(request, user)
            return redirect('home') 
        else:
            error = True
            return render(request, 'login.html', {'error': error}) 

    return render(request, 'login.html',)

login. html

{% extends 'base.html' %}

{% block content %}
    <h2>Sign in</h2>
    <form>
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Sign in</button>
    </form>
{% endblock %}

urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^home/$', Home, name = 'home'),
    url(r'^product_upload', InsertProduct, name = 'product_upload'),
    url(r'^success', success, name = 'success'),
    path('productlist/', ShowProducts, name = 'productlist'),
    path('<int:product_id>/', product_detail, name='product_detail'),
    url(r'^signup/$', signup, name='signup'),
    url(r'^login/$', userLogin, name='login'),
    url(r'^logout/$', userLogout, name='logout'),
]

Вы можете видеть изображения ниже:

Зарегистрироваться изображение

Изображение входа

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Вы должны определить <form mehtod="post" action="{% url 'login' %}"> в своем логине. html и также попробовать request.POST.get('username') и request.POST.get('password')

0 голосов
/ 18 апреля 2020
 return render(request, 'login.html',)

Эта строка просто отображает HTML без передачи данных, вам не хватает контекста, включая форму для визуализации.

или вы можете использовать представление на основе классов, предназначенное для входа в систему: https://docs.djangoproject.com/en/3.0/topics/auth/default/#django .contrib.auth.views.LoginView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...