Ограничение доступа к некоторым страницам в 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