Как назначить определенные группы пользователям при регистрации в Django
Я новичок в Django. Я разрабатываю школьное онлайн приложение. У меня есть несколько групп пользователей, таких как руководитель секции, учитель, руководитель предмета, классный руководитель и т.д. Мне нужно дать пользователю возможность выбрать свою группу и назначить каждого пользователя в эти группы во время регистрации. Я не знаю, как это сделать. Пожалуйста, помогите мне научиться этому. Спасибо.
Это мое мнение.
def register(request):
form = CreateUserForm()
if request.method == 'POST':
form = CreateUserForm(request.POST)
if form.is_valid():
form.save()
user_group = Group.objects.get(name='group_name')
user.groups.add(group)
username = form.cleaned_data.get('username')
messages.success(request, f'Profile details updated {username}.')
return redirect ('login')
else:
print(form.errors)
# return redirect ('login')
group = Group.objects.all()
context = {
'group': group,
'form':form
}
return render (request, 'register.html', context)
это моя форма
from django.forms import ModelForm
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django import forms
class CreateUserForm(UserCreationForm):
class Meta:
model = User
fields = ['username', 'password1', 'password2']
Мой шаблон
<form method="POST" action="">
{% csrf_token %}
<div class="input-group mb-3">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-user"></i></span>
</div>
<select name="user-group" >
{% for group in group %}
<option value="1">{{group.name}}</option>
{% endfor %}
</select>
{{group.name}}
</div>
<div class="input-group mb-3">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-user"></i></span>
</div>
{{form.username}}
</div>
<div class="input-group mb-2">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-key"></i></span>
</div>
{{form.password1}}
</div>
<div class="input-group mb-2">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-key"></i></span>
</div>
{{form.password2}}
</div>
<div class="d-flex justify-content-center mt-3 login_container">
<input class="btn login_btn" type="submit" value="Register Account">
</div>
</form>