Вход в Django с пользовательским шаблоном формы - PullRequest
0 голосов
/ 21 ноября 2018

Я использую аутентификацию Django с моей формой входа в шаблон, после того как я нажал кнопку входа в форму, страница обновилась, но я не могу войти в систему и не отображает ошибку {{context}} вшаблон.

Мой взгляд:

def login_view(request):
    if request.method == 'POST':
        all_categories = Categories.objects.all()
        all_websites = Website.objects.all()
        all_discounts = Discount.objects.order_by('-id')
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('/',categories=all_categories,websites=all_websites,discounts=all_discounts)
        else:
            context = 'wrong username or password'
            all_categories = Categories.objects.all()
            all_websites = Website.objects.all()
            all_discounts = Discount.objects.order_by('-id')
            return redirect('/',categories=all_categories,websites=all_websites,discounts=all_discounts,context=context)

Моя форма (header.html)

<div class="col-md-3 top-info-cart text-right mt-lg-4">
                    {% if user.is_authenticated %}
                        <p>Welcome, {{ user.username }}.</p>
                        <p><a href="{% url 'frontend:logout' %}">logout</a></p>
                    {% else %}
                        <ul class="cart-inner-info">
                        <li class="button-log">
                            <a class="btn-open" href="#">
                                <span class="fa fa-user" aria-hidden="true"></span>
                            </a>
                        </li>
                        </ul>
                        <p>{{context}}</p>
                    {% endif %}

                    <!---->
                    <div class="overlay-login text-left">
                        <button type="button" class="overlay-close1">
                            <i class="fa fa-times" aria-hidden="true"></i>
                        </button>
                        <div class="wrap">
                            <h5 class="text-center mb-4">Login Now</h5>
                            <div class="login p-5 bg-dark mx-auto mw-100">
                                <form action="{% url 'frontend:login' %}" method="post">
                                    {% csrf_token %}
                                    <div class="form-group">
                                        <label class="mb-2">User name</label>
                                        <input type="text" name="username" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
                                        <small id="emailHelp" class="form-text text-muted">We'll never share your informations with anyone else.</small>
                                    </div>
                                    <div class="form-group">
                                        <label class="mb-2">Password</label>
                                        <input type="password" class="form-control" id="exampleInputPassword1"type="password">
                                    </div>
                                    <button type="submit" class="btn btn-primary submit mb-4" value="Login">Sign In</button>
                                    <p>Don't have an account? <a href="{% url 'frontend:signup' %}" style="color: orange;">SIGN UP </a></p>
                                </form>
                            </div>
                            <!---->
                        </div>
                    </div>

И мой urls.py:

from  django.urls import path
from .import views
app_name = 'frontend'
urlpatterns = [
    #index
    path('',views.index, name='index'),
     #/discount/id
    path('<id>/',views.single,name='single'),
    #/category/category_name
    path('category/<name>',views.category,name='category'),
    #/signup
    path('signup',views.signup,name='signup'),
    #/logout
    path('logout',views.logout,name='logout'),
    #/login
    path('login',views.login_view,name='login')
]

Это из-за неверной аутентификации или функции просмотра?Я пытался это исправить, но до сих пор не понял.Надеюсь, кто-нибудь может мне помочь:)

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