在我的视图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返回了与医院相关的请求id。但是,我很困惑,我需要帮助思考解决方案。我是Django的新手,所以。我想我需要将PK传递给视图,然后创建一个过滤器来检查PK是否等于Hospital Request中的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")

相关内容

  • 没有找到相关文章