Reputation: 2122
I am trying to set session but it is giving me error
is not JSON serializable
self.request.session['acl_permissions'] = AclRoleAccess.objects.filter(
Q(acl_company=self.request.user.userprofile.user_company) &
Q(acl_role=self.request.user.userprofile.user_role) &
Q(acl_has_access=True)
)
if 'acl_permissions' in self.request.session:
acl_permissions = self.request.session['acl_permissions']
print(acl_permissions)
How can i store QuerySet in Session. And what will be right way?
Upvotes: 1
Views: 650
Reputation: 461
you are setting queryset to session object which is not serializable, add an ModelSerializer
and pass queryset
result to serializer with many
flag as True
and set serializer.data to session object.
your code will look something like this
query_set = AclRoleAccess.objects.filter(
acl_company=self.request.user.userprofile.user_company,
acl_role=self.request.user.userprofile.user_role,
acl_has_access=True)
serializer = AclRoleAccessSerializer(query_set, many=True)
self.request.session['acl_permissions'] = serializer.data
where AclRoleAccessSerializer
is model serializer for AclRoleAccess
model
Upvotes: 4