From b8e3d11c6f9d397fd6448a87c97a110bba05ec60 Mon Sep 17 00:00:00 2001 From: Sokurov Idar Date: Mon, 8 Feb 2021 19:10:44 +0300 Subject: [PATCH] Add first version registration --- access_controller/settings.py | 1 + access_controller/urls.py | 5 ++- .../django_registration_complete.html | 10 +++++ .../registration_form.html | 20 ++++++++++ main/views.py | 39 ++++++++++++++++++- 5 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 main/templates/django_registration/django_registration_complete.html create mode 100644 main/templates/django_registration/registration_form.html diff --git a/access_controller/settings.py b/access_controller/settings.py index dc44189..8f61695 100644 --- a/access_controller/settings.py +++ b/access_controller/settings.py @@ -37,6 +37,7 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'django_registration', 'main', ] diff --git a/access_controller/urls.py b/access_controller/urls.py index e0ecf63..eb189ef 100644 --- a/access_controller/urls.py +++ b/access_controller/urls.py @@ -16,6 +16,9 @@ Including another URLconf from django.contrib import admin from django.urls import path +from main.views import Reg + urlpatterns = [ - path('admin/', admin.site.urls), + path('admin/', admin.site.urls, name='admin'), + path('register/', Reg.as_view(), name='registration'), ] diff --git a/main/templates/django_registration/django_registration_complete.html b/main/templates/django_registration/django_registration_complete.html new file mode 100644 index 0000000..61a69c0 --- /dev/null +++ b/main/templates/django_registration/django_registration_complete.html @@ -0,0 +1,10 @@ + + + + + Title + + +NIce + + diff --git a/main/templates/django_registration/registration_form.html b/main/templates/django_registration/registration_form.html new file mode 100644 index 0000000..6b84e1d --- /dev/null +++ b/main/templates/django_registration/registration_form.html @@ -0,0 +1,20 @@ + + + + + Title + + +

Регистрация

+
+ {% csrf_token %} + {% for field in form %} + {{ field.label_tag }} + {{ field }} +
+ {% if field.errors %}
{{ field.errors }}
{% endif %} +{% endfor %} + + + + diff --git a/main/views.py b/main/views.py index 91ea44a..a6208c4 100644 --- a/main/views.py +++ b/main/views.py @@ -1,3 +1,38 @@ -from django.shortcuts import render - # Create your views here. +from abc import ABC + +from django.contrib.auth.models import User +from django.urls import reverse_lazy +from django_registration.forms import RegistrationFormUniqueEmail +from django_registration.views import RegistrationView +from zenpy import Zenpy + +from main.models import UserProfile + + +class Reg(RegistrationView): + form_class = RegistrationFormUniqueEmail + template_name = 'django_registration/registration_form.html' + + def register(self, form): + creds = { + 'email': 'DEFINEME', + 'subdomain': 'ngenix1612197338', + 'token': 'DEFINEME', + } + client = Zenpy(**creds) + zenpy_user = client.search(form.data['email'], type='user') + if zenpy_user: + user = User.objects.create_user( + username=form.data['username'], + email=form.data['email'], + password=form.data['email'], + ) + profile=UserProfile.objects.create( + image='None.png', + user=user, + role='None' + ) + user.save() + else: + raise AttributeError('No such email')