Расширение пользовательского представления в django admin - PullRequest
0 голосов
/ 05 февраля 2020

Я расширил свою модель пользователя, чтобы создать два типа профиля: профиль наставника и профиль студента. Эти профили имеют стандартное имя пользователя, пароль и данные электронной почты, а также другую информацию, которую я включил, некоторые указывают c для одного типа пользователя.

Однако, когда я захожу к своему администратору, я могу видеть список пользователи, я не вижу никакой другой информации, кроме имени пользователя, адреса электронной почты, имени, фамилии и прав доступа (активные, статус персонала и superuserstatus).

Я хотел бы видеть всю информацию, которую я создал в пользовательских моделях клиентов, какой тип профиля создал пользователь (учитель или ученик) и активировал ли я профиль.

Это мой models.py:

...
class User(AbstractUser):
    is_student = models.BooleanField(default=False)
    is_teacher = models.BooleanField(default=False)
    is_activated = models.BooleanField(default=False)
...
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)
...
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)

Вот мой файл 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, User

class CustomerUserAdmin(UserAdmin):
    add_mentor_form = TeacherSignUpForm
    add_student_form = StudentSignUpForm
    mentor_model = Mentor
    student_model = Student

admin.site.register(User, CustomerUserAdmin)

student.py (просмотры):

class StudentSignUpView(CreateView):
    model = User
    form_class = StudentSignUpForm

и teacher.py (просмотры):

class TeacherSignUpView(CreateView):
    model = User
    form_class = TeacherSignUpForm
...