我有一个函数应该将用户创建的所有对象更新为非活动状态。所以,我编写此:一次更新多个对象
def TurnOff(request, passed_id):
if request.user.is_authenticated():
#this should set all objects to an inactive state
tmp = myModel.objects.filter(created_by=request.user).update(active=False)
#this is to set one specific object to an active state again
myModel = get_object_or_404(myModel, created_by=request.user, pk=passed_id)
tmp = myModel.objects.filter(created_by=request.user, pk=passed_id).update(active=True)
return HttpResponseRedirect("../started")
else:
return HttpResponseRedirect("/")
线tmp = myModel.objects.filter(created_by=request.user).update(active=False)
不工作(这意味着假未设置),只有当我指定与其他关键字pk=ANY_ID
的过滤器,但我想更新像其描述的所有对象docs!
的pK是指一个特定的个体对象。如果你想更新所有的对象,你为什么要通过PK过滤? –
@DanielRoseman应该返回所有对象的过滤器没有pk过滤属性,只有第二个过滤器会重新激活一个特定对象。 – rwx
你怎么知道它不起作用,如果你在第一个过滤器之后循环,在myModel.objects.filter(created_by = request.user)并打印活动,你会得到什么? –