【发布时间】:2016-11-22 20:26:07
【问题描述】:
在 Views.py 中返回对象之前修改对象有一个小问题。我的情况是我必须为未订阅用户隐藏/修改模型对象中的某些值。我当前的代码是这样的(伪代码):
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。我希望未订阅的用户看到订阅用户可以看到的预览,但看不到视频。谢谢!
【问题讨论】:
标签: django django-models django-views django-rest-framework