Показать данные из определенной таблицы в моем представлении django
Я хочу, чтобы только запросы из больницы. Как я могу этого добиться?
Пример:
Пользователь из больницы
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(_('email address'), unique=True)
FKbelongs_to = models.ForeignKey('HospitalViewRoleForUsers', on_delete = models.CASCADE, null=True, blank=True)
Модель больницы
class HospitalViewRoleForUsers(models.Model):
RequestsFromLab = models.ForeignKey('request', on_delete=models.PROTECT)
Запросы из больницы
FKHospitalRequests = models.ForeignKey('HospitalViewRoleForUsers', on_delete = models.PROTECT)
user_request = models.ForeignKey('customuser', on_delete= models.PROTECT)
В моем представлении мне нужно проверить, к какой больнице принадлежит пользователь и, передать только информацию о запросе из этой больницы в мое представление пользователя.
Представление пользователя, которое я пытаюсь построить
def Get_UserRequestByHospital(request, pk):
user = request.user
items = requests.objects.filter(FKHospitalRequests = 1).values_list('id', flat = True)
return render(request, 'user_profile/list-user-request.html', {'items': items})
В данных тестирования Jupyter это выглядит следующим образом
user_hospital2 = requests.objects.filter(FKHospitalRequests = 1).values_list('id', flat = True)
<QuerySet [1]>
Как мы видим, Jupyter возвращает идентификатор запроса. Который связан с больницей. Но я запутался, и мне нужна помощь в поиске решения. Я новичок в Django, поэтому. Я предполагаю, что мне нужно передать PK в представление, а затем создать фильтр для проверки, равен ли PK FK из запроса больницы? Но, также, как я узнаю, что этот пользователь принадлежит больнице? Спасибо. Я действительно потерян и я новичок в Django.
-- Редактирование: Другие пользователи могут видеть запросы других пользователей.
Я решил эту проблему следующим образом:
В моем представлении заявок я добавил FK, чтобы проверить, равен ли он FK пользователя. С помощью этого метода я могу сделать так, чтобы только пользователи из больницы 1 могли видеть заявки больницы 1.
def Get_UserRequest(request, FKbelongs_to_id):
user = request.user
if CustomUser.objects.filter(FKbelongs_to_id = FKbelongs_to_id):
items = requests.objects.filter(FKHospitalRequests_id = FKbelongs_to_id)
else:
return HttpResponseNotAllowed("Not Allowed")