Я не могу просматривать пользователей в django admin. Я вижу только группы под аутентификацией заголовка. У меня есть функциональное приложение, где пользователи могут создавать профили. Я предполагал, что смогу увидеть профили, созданные в admin для аутентификации пользователей и изменения их ролей
Вот мой код i.) Models.py
class User(AbstractUser):
is_student = models.BooleanField(default=False)
is_teacher = models.BooleanField(default=False)
is_activated = models.BooleanField(default=False)
...
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
# linkedin = models.URLField(max_length=200, null=True, blank=True)
def __str__(self):
return "Profile of user{}".format(self.user.username)
...
class Mentor(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='mentor')
linkedin = models.URLField(max_length=200,null=True,blank=True)
photo = models.ImageField(null=True, blank=True, upload_to='media', default='default.jpg')
address = models.CharField(max_length=500, null=True, blank=True)
billing_name = models.CharField(max_length=200, null=False, blank=False)
account_num = models.IntegerField(default=1234)
bank_name = models.CharField(max_length=50, null=False)
branch_code = models.IntegerField(default=1234)
def __str__(self):
return "Profile of user {}".format(self.user.username)
ii.) settings.py
...
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.admin',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'crispy_forms',
'classroom',
]
...
и iii.) forms.py
class TeacherSignUpForm(UserCreationForm):
email = forms.EmailField(max_length=100)
first_name = forms.CharField(max_length=100)
last_name = forms.CharField(max_length=100)
linkedin = forms.URLField(max_length=200)
address = forms.CharField(max_length=500)
billing_name = forms.CharField(max_length=200)
account_num = forms.IntegerField()
bank_name = forms.CharField(max_length=50)
branch_code = forms.IntegerField()
class Meta(UserCreationForm.Meta):
model = User
fields = ('email', 'username', 'first_name', 'last_name')
def save(self, commit=True):
self.instance.is_teacher = True
user = super(UserCreationForm, self).save(commit=False)
user.email = self.cleaned_data['email']
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.save()
mentor = Mentor.objects.get_or_create(
user=user,
linkedin=self.cleaned_data['linkedin'],
address=self.cleaned_data['address'],
billing_name=self.cleaned_data['billing_name'],
account_num=self.cleaned_data['account_num'],
bank_name=self.cleaned_data['bank_name'],
branch_code=self.cleaned_data['branch_code'],
)
return user
#basic form
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ('first_name', 'last_name', 'email')
...
class StudentSignUpForm(UserCreationForm):
first_name = forms.CharField(max_length=100)
last_name = forms.CharField(max_length=100)
email = forms.EmailField(max_length=100)
class Meta(UserCreationForm.Meta):
model = User
fields = ('email', 'username', 'first_name', 'last_name')
@transaction.atomic
def save(self, commit=True):
self.instance.is_student = True
user = super(UserCreationForm, self).save(commit=False)
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.email = self.cleaned_data['email']
user.save()
student = Student.objects.get_or_create(
user=user,
)
return user