Как лучше реализовать Update для AbstractUser в Django?
Ссылка скопирована
Нужно понять: в моем приложении реализованы регистрация/вход с помощью наследования UserCreationForm. Как осуществить изменение пользователя, задействовав UserChangeForm?
#models.py
from django.contrib.auth.models import AbstractUser # Create your models here. class CustomUser(AbstractUser): pass def __str__(self): return self.username
#forms.py
from django.contrib.auth.forms import UserCreationForm, UserChangeForm from .models import CustomUser class CustomUserCreationForm(UserCreationForm): class Meta(UserCreationForm): model = CustomUser fields = ('first_name', 'last_name', 'username', 'email') class CustomUserChangeForm(UserChangeForm): class Meta: model = CustomUser fields = ('first_name', 'last_name', 'username', 'email')
#views.py
from django.shortcuts import render, redirect # Create your views here. from django.urls import reverse_lazy from django.views.generic.edit import CreateView from django.views import View from .forms import CustomUserCreationForm, CustomUserChangeForm from .models import CustomUser class SingUpView(CreateView): form_class = CustomUserCreationForm success_url = reverse_lazy('login') template_name = 'signup.html' # выдает ошибку class CustomUserUpdateView(View): def get(self, request, *args, **kwargs): user_id = kwargs.get("id") user = CustomUser.objects.get(id=user_id) form = CustomUserChangeForm(instance=user) return render( request, "users/update.html", {"form": form, "user_id": user_id} ) def post(self, request, *args, **kwargs): user_id = kwargs.get("id") user = CustomUser.objects.get(id=user_id) form = CustomUserChangeForm(request.POST, instance=user) if form.is_valid(): form.save() return redirect("users_list") return render( request, "users/update.html", {"form": form, "user_id": user_id} )
#update.html
{% if form.errors %} <div> <ul> {% for error in form.errors %} <li><strong>{{ error|escape }}</strong></li> {% endfor %} </ul> </div> {% endif %} <form action="{% url 'users_update' id=user_id %}" method="post"> {% csrf_token %} <table border="1"> {{ form }} </table> <input type="submit" value="Сохранить"> </form>
Сейчас ситуация такая: пыталась реализовать update через наследование класса View с методами get/post, выдает ошибку:По вводным: customUser matching query does not exist.
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопросВам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
0 ответов
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
0 ответов
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
0 ответов
1С-Битрикс
Можно ли быстро сделать зеркало сайта на связке Битрикс+Аспро с другими настройками?
0 ответов
