在Views.py中返回对象之前修改对象存在一个小问题。我的情况是,我必须隐藏/修改未订阅用户的模型对象的某些值。我当前的代码是这样的(伪代码):修改视图中的对象值,而无需使用django修改数据库值
ShowList(ListAPIView):
def get_queryset(self):
"""
This view should return a list of all the Shows
for the currently authenticated user.
"""
pk = self.kwargs['pk']
shows = Shows.objects.get(id=pk)
return shows
我想要做的是从查询得到的那些改变一个对象。例如,我想为名为'video'的对象返回0/null。我所做的是:
shows.video = 0
shows.save()
return shows
问题是它实际上覆盖了数据库级别的对象的值。我想要的只是在返回之前暂时更改它。我也曾尝试
permission_classes =(subscription_permission,)
但它会阻止所有的views.py。我希望取消订阅的用户查看预订用户的预览内容,但不会看到视频。谢谢!