Python Django使用会话中的反序列化数据筛选查询集

Python Django使用会话中的反序列化数据筛选查询集,python,django,Python,Django,我想在Django中为我的实体模型实现一个对象级权限系统。 所以我有一个PermissionEntity模型: class PermissionEntity(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) entity = models.ForeignKey(Entity, on_delete=models.CASCADE, null=T

我想在Django中为我的实体模型实现一个对象级权限系统。 所以我有一个PermissionEntity模型:

class PermissionEntity(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)    
    entity = models.ForeignKey(Entity, on_delete=models.CASCADE, null=True, blank=True)
    crud = models.ForeignKey(Crud, on_delete=models.CASCADE) # Create/Read/Update/Delete
在我的登录页面上,我存储对会话的用户权限。登录视图包含以下代码:

permission_entity = PermissionEntity.objects.filter(user_id = user.id)
permission_entity = serializers.serialize('json', permission_entity)
request.session ['permission_entity'] = permission_entity
我想在我的视图中获得允许的实体列表:

def entity_list(request):
    permission_entity = serializers.deserialize('json', request.session ['permission_entity'])
    entity_list = Entity.objects.filter(pk__in=permission_entity.entity_id)

我知道当前视图不正确,但我不知道在这种情况下如何处理反序列化对象。或者我走错了?

中的pk\uu用于pks列表,即
[1,2,3,4]
。您的
权限\u实体。实体\u id
列表
对象吗?它应该是列表。但是我不知道如何从序列化程序中获取这样的列表。反序列化('json',request.session['permission\u entity'])请您更新
entity
模型模式以回答您的问题,以及您在
request.session['permission\u entity']
中收到了什么?谢谢您的提示。我刚刚更改了逻辑:只需将列表传递给会话。