Django auth не находит группы и не дает разрешения пользователям, независимо от того, в какой группе они находятся

Я делаю простое приложение для работы с недвижимостью, где пользователи должны быть разделены на две разные группы. Обычный пользователь и брокер. Для создания групп пользователей я использую бэкенд администратора Django. Я также использую сигнал post_save для назначения всех новых пользователей в группу обычных пользователей. На первый взгляд, все работает хорошо и в Django admin показывает, что пользователь находится в соответствующей группе. Но когда я пытаюсь вывести self.request.user.groups, значение оказывается None. Также, когда я пытаюсь проверить, есть ли у пользователей разрешение делать что-либо, независимо от того, какие разрешения я дал, представление, которое я проверяю, всегда выдает мне 403 Forbidden, независимо от того, есть у пользователя разрешение или нет. Я использую представления на основе классов и PermissionRequiredMixin соответственно. Вот моя модель пользователя:

class DjangoEstatesUser(auth_models.AbstractBaseUser, auth_models.PermissionsMixin):
USERNAME_MAX_LENGTH = 30

username = models.CharField(
    max_length=USERNAME_MAX_LENGTH,
    unique=True,
)

date_joined = models.DateTimeField(
    auto_now_add=True,
)

is_staff = models.BooleanField(
    default=False,
)

USERNAME_FIELD = 'username'

objects = DjangoEstatesUserManager()

Также сигнал для назначения новых пользователей в группу:

 @receiver(post_save, sender=DjangoEstatesUser)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        instance.groups.add(Group.objects.get(name='Users'))

и вот одно представление, которое я пытаюсь ограничить для разных пользователей:

class AddEstateView(auth_mixins.LoginRequiredMixin, auth_mixins.PermissionRequiredMixin, views.CreateView):
permission_required = 'auth_permission.add_estate'
template_name = 'main/estates/add_estate.html'
form_class = AddEstateForm

def get_form_kwargs(self):
    kwargs = super().get_form_kwargs()
    kwargs['user'] = self.request.user
    return kwargs

def get_success_url(self):
    return reverse_lazy('profile details', kwargs={'pk': self.object.user_id})

А это группы с правами доступа. Группа_брокеры и users_group.

А это мои db_tables и auth_permission_table.

Я не могу понять, где я ошибаюсь или что я делаю неправильно, любая помощь будет оценена по достоинству! Заранее спасибо!

self.request.user.groups печатает всегда None: это RelatedManager [Django-doc], а не QuerySet. Менеджеры будут печатать имя модели с None, поэтому для Model с именем ModelName в app_name, он печатает:

app_name.ModelName.None

Вы печатаете элементы с помощью self.request.user.groups.all():

print(self.request.user.groups.all())
Вернуться на верх