login routines
This commit is contained in:
SDE
2023-07-11 15:17:49 +03:00
parent b88ddde1c7
commit ca48a00196
13 changed files with 137 additions and 1 deletions

View File

@@ -9,6 +9,11 @@ from .models import *
# from datetimepicker.widgets import DateTimePicker # from datetimepicker.widgets import DateTimePicker
# from datetimepicker.helpers import js_loader_url # from datetimepicker.helpers import js_loader_url
class LoginForm(forms.Form):
username = forms.CharField(required=True)
password = forms.CharField(required=True)
class RegistrationForm(forms.Form): class RegistrationForm(forms.Form):
from .models import account_type_choices from .models import account_type_choices
account_type = forms.ChoiceField(choices=account_type_choices, initial='sender', required=True) account_type = forms.ChoiceField(choices=account_type_choices, initial='sender', required=True)

View File

@@ -7,4 +7,7 @@ from django.contrib.auth import views
urlpatterns = [ urlpatterns = [
path('registration/', registration_ajax, name='registration_ajax'), path('registration/', registration_ajax, name='registration_ajax'),
path('login/', login_ajax, name='login_ajax'),
path('new_route_view/', new_route_view_ajax, name='new_route_view_ajax'),
] ]

View File

@@ -12,6 +12,69 @@ from datetime import datetime
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.urls import reverse from django.urls import reverse
def new_route_view_ajax(request):
if request.method != 'POST':
raise Http404
from RoutesApp.forms import RegistrationForm
Dict = {
'form': RegistrationForm()
}
html = render_to_string('blocks/profile/b_new_route.html', Dict, request=request)
return JsonResponse({'html': html}, status=200)
def login_ajax(request):
if request.method != 'POST':
raise Http404
try:
data = request.POST
from .forms import LoginForm
form = LoginForm(data)
if not form.is_valid():
Dict = {'form': form}
html = render_to_string('forms/f_registration.html', Dict, request=request)
return JsonResponse({'html': html}, status=400)
from django.contrib.auth import authenticate
user = authenticate(username=form.data['username'], password=form.data['password'])
if user is not None:
auth.login(request, user)
else:
errors_Dict = {
'errors': {
'__all__': f'неверный логин и\или пароль'
}
}
Dict = {'form': errors_Dict}
html = render_to_string('forms/f_login.html', Dict)
return JsonResponse({'html': html}, status=400)
res_Dict = {
'redirect_url': reverse('user_profile')
}
return JsonResponse(res_Dict)
except Exception as e:
errors_Dict = {
'errors': {
'__all__': f'ошибка в запросе = {str(e)}'
}
}
Dict = {'form': errors_Dict}
html = render_to_string('forms/f_login.html', Dict)
return JsonResponse({'html': html}, status=400)
def registration_ajax(request): def registration_ajax(request):
if request.method != 'POST': if request.method != 'POST':
raise Http404 raise Http404

0
RoutesApp/__init__.py Normal file
View File

3
RoutesApp/admin.py Normal file
View File

@@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

6
RoutesApp/apps.py Normal file
View File

@@ -0,0 +1,6 @@
from django.apps import AppConfig
class RoutesappConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'RoutesApp'

25
RoutesApp/forms.py Normal file
View File

@@ -0,0 +1,25 @@
# # coding=utf-8
from django import forms
from django.contrib.auth.forms import AuthenticationForm
from django.utils.translation import gettext_lazy as _
from django.core.exceptions import ValidationError
from .models import *
class RegistrationForm(forms.Form):
type_transport = forms.ChoiceField(choices=type_transport_choices, initial='avia', required=True)
departure_DT = forms.DateTimeField(required=True)
arrival_DT = forms.DateTimeField(required=True)
from_country = forms.CharField(required=True)
to_country = forms.CharField(required=True)
from_city = forms.CharField(required=True)
to_city = forms.CharField(required=True)
from_place = forms.ChoiceField(choices=transfer_location_choices, initial='other', required=True)
to_place = forms.ChoiceField(choices=transfer_location_choices, initial='other', required=True)
cargo_type = forms.ChoiceField(choices=cargo_type_choices, initial='parcel', required=True)
weight = forms.IntegerField(required=True)
phone = forms.CharField(required=True)
add_phone = forms.CharField(required=True)
receive_msg_by_email = forms.BooleanField(initial=False, required=True)
receive_msg_by_sms = forms.BooleanField(initial=False, required=True)
owner = forms.IntegerField(required=True)

View File

23
RoutesApp/models.py Normal file
View File

@@ -0,0 +1,23 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
# Create your models here.
type_transport_choices = (
('avia', _('Авиатранспорт')),
('road', _('Наземный транспорт'))
)
transfer_location_choices = (
('airport', _('В аэропорту')),
('city', _('По городу')),
('other', _('По договоренности'))
)
cargo_type_choices = (
('passenger', _('Пассажир')),
('cargo', _('Груз')),
('parcel', _('Бандероль')),
('package', _('Посылка')),
('letter', _('Письмо\Документ'))
)

3
RoutesApp/tests.py Normal file
View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

3
RoutesApp/views.py Normal file
View File

@@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.

View File

@@ -0,0 +1,3 @@
<div>
</div>

View File

@@ -4,7 +4,6 @@
<form name="registration_form" method="post"> <form name="registration_form" method="post">
{% csrf_token %} {% csrf_token %}
<div class="switch"> <div class="switch">
<div><a class="active" href="#">Перевозчик</a></div> <div><a class="active" href="#">Перевозчик</a></div>
<div><a class="deadctive" href="#">Отправитель</a></div> <div><a class="deadctive" href="#">Отправитель</a></div>