Я расширил свою модель пользователя, чтобы создать два типа профиля: профиль наставника и профиль студента. Однако я замечаю, что не могу просмотреть ни одного из моих пользователей в django .admin. Я вижу только группы под аутентификацией.
Вот мой файл admin.py
from django.contrib.auth import get_user_model
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .forms import TeacherSignUpForm, StudentSignUpForm
from .models import Student, Mentor
class CustomerUserAdmin(UserAdmin):
add_mentor_form = TeacherSignUpForm
add_student_form = StudentSignUpForm
mentor_model = Mentor
student_model = Student
admin.site.register(Mentor, Student, CustomerUserAdmin)
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)
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)
...
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 StudentSignUpForm(UserCreationForm):
first_name = forms.CharField(max_length=100)
last_name = forms.CharField(max_length=100)
email = forms.EmailField(max_length=100)
В настоящее время, когда я пытаюсь запустить makemigrations после создания admin.py, я получаю сообщение об ошибке:
django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: classroom
В соответствии с запросом, это 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',
'classroom.apps.ClassroomConfig',
]
Просто чтобы объяснить структура моего проекта. У меня 3 вида, учителя, ученики и классная комната. Представление в классе имеет дело с домашними страницами и страницами, которые может просматривать любой посетитель (вам не нужно входить в систему), учителями = страницы профиля учителя и учащиеся = страницы профиля студента
Не уверен, что я я делаю не так