Как я проверяю принадлежность пользователя и если нет, то он не допускается в Django

У меня есть представление, которому я хочу передать все запросы, принадлежащие больнице. И пользователь, который принадлежит больнице, не может видеть запросы других больниц. Как я могу вернуть HttpResponseNotAllowed ?

Это модель M:1, у больницы много пользователей, а у пользователя только 1 больница. Запросы принадлежат больнице и пользователю.

У меня есть этот код в моем представлении, но он не работает. Показывает только те запросы, которые принадлежат данной больнице. Но все же я могу изменить Url на другой ID больницы и увидеть другие.

View

def Get_UserRequest(request, Hospital_id):
# if not request.user.is_authenticated:
#     return redirect('login')

if request.user.is_authenticated and request.method == "GET":
    user_sector = int(request.user.FKLab_User.id)

    if user_sector != Hospital_id:
        HttpResponseNotAllowed()
    
    requests = RequestHepatoPredict.objects.filter(Hospital_id=Hospital_id)
    
return render(request, 'user_profile/requests.html', {'requests': requests})

Это сработало для меня.

@permission_classes((IsAuthenticated,))
def Get_UserRequest(request, Hospital_id):
    # if not request.user.is_authenticated:
    #     return redirect('login')
    perm = 1
    user = request.user
    if request.user.is_authenticated and request.method == "GET":
        user_sector = user.FKLab_User.id

        requests = []
        if Hospital_id != user_sector: 
            perm = 0

        if perm == 0:
            error = "You are not allowed."
            return render(request, "error/error.html", {'error':error})
            
    requests = RequestHepatoPredict.objects.filter(Hospital_id=Hospital_id)
    return render(request, 'user_profile/requests.html', {'requests': requests})
Вернуться на верх