Просмотр пользователей в django admin - PullRequest
0 голосов
/ 05 февраля 2020

Я расширил свою модель пользователя, чтобы создать два типа профиля: профиль наставника и профиль студента. Однако я замечаю, что не могу просмотреть ни одного из моих пользователей в 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 вида, учителя, ученики и классная комната. Представление в классе имеет дело с домашними страницами и страницами, которые может просматривать любой посетитель (вам не нужно входить в систему), учителями = страницы профиля учителя и учащиеся = страницы профиля студента

Не уверен, что я я делаю не так

1 Ответ

0 голосов
/ 05 февраля 2020

@ Налин Добхал прибил его:

в своих установленных приложениях вы добавляете дублирующую запись для класса приложения, либо удаляете класс, либо удаляете classroom.apps.ClassroomConfig

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...