Добрый день! У меня проблема с регистрацией пользователей на сайте, перепробовал много способов просмотренных в интернете, но сделал что-то похожее, но не работает. Я понимаю, что это может быть не рабочий метод, или я его неправильно спроектировал. Не могли бы вы дать мне совет, как зарегистрировать или исправить ошибки в моем коде? Заранее спасибо!
Forms.py
from django.forms import ModelForm, \
TextInput, \
Textarea, \
NumberInput, \
FileInput, \
PasswordInput, \
EmailInput
from django.contrib.auth.models import User
from .models import Recipe
class FoodForm(ModelForm):
class Meta:
model = Recipe
fields = ["recipe_title", "recipe", "recipe_time", "recipe_ingridients", "image"]
widgets = {
"recipe_title" : TextInput(
attrs={
"class" : "title_form",
"placeholder" : "Введите название рецепта"
}
),
"recipe": Textarea(
attrs={
"class": "form_of_all",
"placeholder": "Введите ваш рецепт"
}
),
"recipe_time" : NumberInput(
attrs={
"class" : "ingr",
"placeholder" : "Введите время"
}
),
"recipe_ingridients": NumberInput(
attrs={
"class": "ingr",
"placeholder": "Введите кол-во ингридиентов"
}
),
"image" : FileInput(
attrs={
'type' : "file",
'name' : "input__file",
'id' : "input__file"
}
)
}
class RegisterationUserForm(ModelForm):
class Meta:
model = User
fields = ["first_name", "last_name", "email", "password"]
widgets = {
"first_name" : TextInput(
attrs=
{
"placeholder" : "Введите имя",
"type" : "text",
"class" : "text_form"
}
),
"last_name": TextInput(
attrs=
{
"placeholder": "Введите фамилию",
"type": "text",
"class": "text_form"
}
),
"email" : EmailInput(
attrs=
{
"placeholder" : "Введите почту",
"type" : "email",
"class" : "text_form"
}
),
"password" : PasswordInput(
attrs=
{
"placeholder" : "Введите пароль",
"type" : "password",
"class" : "text_form"
}
)
}
views.py
from django.shortcuts import render
from .forms import FoodForm, RegisterationUserForm
from .models import Recipe
def index(request):
card_info = Recipe.objects.all()
return render(request, "food/main.html", {"cards": card_info})
def create(request):
if request.method == "POST":
form = FoodForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return render(request, 'food/true.html')
else:
return render(request, 'food/test.html')
form = FoodForm()
context = {
"form": form
}
return render(request, "food/crate.html", context)
def registrationUserView(request):
if request.method == "POST":
form = RegisterationUserForm(request.POST)
if form.is_valid():
form.save()
return render(request, 'food/true.html')
else:
return render(request, 'food/test.html')
form = RegisterationUserForm()
context = {
"form": form
}
return render(request, "food/registration.html", context)
Registration_base.html
{% load static %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="{% static 'css/registration_css.css' %}">
<title>HTML5</title>
</head>
<body>
<div class = "content">
<div class = "nav_div">
<div class="nav">
<li><button class = "nav_btn">Рецепты</button></li>
<li><button class = "nav_btn">Вход</button></li>
</div>
</div>
{% block content %}{% endblock %}
</div>
</body>
</html>
Registration_with_Jinja.html
{% extends 'food/registration.html' %}
{% load static %}
{% block content %}
<form action="" method="post">
{% csrf_token %}
{{form.first_name}}
{{form.last_name}}
{{form.email}}
{{form.password}}
<button type = "submit">Зарегистрироваться</button>
</form>
{% endblock %}