Ограничение доступа к некоторым страницам в Django

В моем Django проекте я хочу, чтобы только премиум пользователи могли получить доступ к странице продаж. Поэтому если у пользователя user_type стоит Trial, он/она не сможет получить доступ к странице продаж. Для этих не премиум пользователей я хочу отобразить еще один html (upgrade.html) для них

Ниже приведена моя точка зрения

class SalesView(TemplateView, SingleTableView):
    model = Product
    table_class = ProductTable
    template_name = 'src/dashboard/sales.html'

    def get_queryset(self):
        ...
        ...

    def get_context_data(self, **kwargs):
        # my contexts goes here

А это мой url

path('sales', SalesView.as_view(), name='sales'),

Это обычный вид. Теперь я хочу запретить пользователям Trial заходить на эту страницу. Пожалуйста, как я могу этого добиться? В моей модели есть поле user_type, которое говорит о том, является ли пользователь Trial или Premium пользователем

Вы можете использовать роли Django, чтобы определить роли для пользователя и ограничить доступ к странице с помощью роли. В вашем случае роль по умолчанию будет Trial. Этот блог может быть полезен

https://medium.com/djangotube/django-roles-groups-and-permissions-introduction-a54d1070544

Вернуться на верх