0

Я использую авторизацию Django.Дифференциальные уровни пользователей в Django

Я хочу различать 3 типа пользователей и представлять разные материалы для каждого типа пользователей.

Как я могу различать эти 3 типа? Следует ли добавить поле выбора, определяющее тип пользователя или создать 3 группы, и добавить пользователей в нужную группу?

Как я могу представить различные материалы в соответствии с типом пользователя?

ответ

1

Создание трех различных классов:

class Level1(models.model): 
    member = models.ForeignKey(User) 

class Level2(models.model): 
    member = models.ForeignKey(User) 

class Level3(models.model): 
    member = models.ForeignKey(User) 

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

if Level1.objects.filter(memeber=user).count() > 0: 
    // present the content you want 
else Level2.objects.filter(memeber=user).count() > 0: 
    // present the content you want 
else Level3.objects.filter(memeber=user).count() > 0: 
    // present the content you want 
0

Обратите внимание, что django.contrib.auth в первую очередь подходит для аутентификации и авторизации.

Что вы должны сделать, это зависит от того, что именно означает type of user.

В типичной ситуации, когда type представляет различные уровни авторизации, которые пользователь имеет, вам следует рассмотреть возможность использования системы разрешений (или выполнения существующей, см., Например, here).

Если type представляет внутреннюю собственность пользователя (например, мужчина/женщина/другое), то пользовательский пользователь и добавьте новый ChoiceField к нему.

Если type представляет собой нечто более сложное, что потенциально будет иметь отношения с другими моделями, то я бы пошел на новую модель UserType.

0

Если вам нужно только назначить различные права доступа к различным типам пользователей, идти вперед и создать группу пользователей его довольно простой из django.contrib.auth.models импорта Группа

новая_группа = Group.objects. создать (имя = group_name)

следующий ответ также поможет вам установить разрешение

User groups and permissions

Смежные вопросы