В Django как запретить пользователям просматривать страницы/результаты других пользователей
Я работаю над сайтом анкет и отчетов. Пользователи заполняют некоторые анкетные формы и получают кнопку на сайте результатов, которая показывает пользователю его собственные результаты. Моя проблема в том, что я использую user_name_id
в url для показа нужной страницы (например localhost:8000/mpa/7
) пользователю и не знаю, как ограничить request.user
, чтобы позволить увидеть только его результаты. Теперь, если авторизованный пользователь захочет, он может изменить id в url и сможет просматривать результаты других пользователей.
views.py
@login_required
def main(request):
gdpr_new = Gdpr_new.objects.filter(user_name=request.user)
...
context = {
'gdpr_new': gdpr_new,
...
}
return render(request, 'stressz/main.html', context)
urls.py
app_name = 'stressz'
urlpatterns = [
path('<int:user_name_id>/', views.results, name='results'),
path('project_details/<int:projekt_id>/', views.project_details, name='project_details'),
path('sum/<int:user_name_id>/', views.individual_sum, name='individual_sum'),
path('main', views.main, name='main'),