Новый для Django здесь. Существует три типа пользователей: бронзовый, серебряный и золотой с разными разрешениями. Все пользователи начинают как Бронзовый, когда они регистрируются, а затем двигаются вверх, когда они выполняют определенные условия. Поэтому я попытался настроить модель User с помощью учебника Django. До сих пор я был в состоянии создать пользователей правильно. Однако я хочу добавить этих пользователей в Бронзовую группу, как только они зарегистрируются, и не уверен, куда мне поместить этот код. Вот мой код Это довольно просто. models.py
# models.py
from django.contrib.auth.models import AbstractUser, Group
from django.db import models
class CustomUser(AbstractUser):
pass
# add additional fields in here
def __str__(self):
return self.username
forms.py
from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import CustomUser
class CustomUserCreationForm(UserCreationForm):
class Meta:
model = CustomUser
fields = ('username', 'email')
class CustomUserChangeForm(UserChangeForm):
class Meta:
model = CustomUser
fields = ('username', 'email')
views.py
from django.shortcuts import render
from django.urls import reverse_lazy
from django.views.generic.edit import CreateView
from .forms import CustomUserCreationForm
# Create your views here.
class SignUpView(CreateView):
form_class = CustomUserCreationForm
success_url = reverse_lazy('login')
template_name = 'signup.html'
admin.py
from django.contrib import admin
# Register your models here.
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin
from .forms import CustomUserCreationForm, CustomUserChangeForm
from .models import CustomUser
class CustomUserAdmin(UserAdmin):
add_form = CustomUserCreationForm
form = CustomUserChangeForm
model = CustomUser
list_display = ['email', 'username',]
admin.site.register(CustomUser, CustomUserAdmin)
Я могу просто вручную добавить пользователя в группу на django оболочке.
>>>currUser.groups.add(Group.objects.get(name='Bronze'))
Откуда этот код go, чтобы эта команда выполнялась во время регистрации?
Любая помощь приветствуется.
Спасибо