Невозможно просмотреть пользователей в django admin - PullRequest
0 голосов
/ 04 февраля 2020

Я не могу просматривать пользователей в 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

1 Ответ

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

У вас есть AUTH_USER_MODEL = 'youruserapp.User' в settings?

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