覆盖Django UpdateView中的get_queryset。当我返回正确的查询集时,为什么要求<pk>或<slug>?</slug> </pk>

时间:2013-05-09 07:25:58

标签: django django-class-based-views django-1.5

以下是我的观点。

class ModelxUpdateView(LoginRequiredMixin, UpdateView):
    model = Modelx
    template_name='template.html'
    form_class = ModelxFormSet

       def get_queryset(self):
           # query_set = super(ModelxUpdateView, self).get_queryset().filter(user=self.request.user)
           query_set = Modelx.objects.filter(user=self.request.user)
           return query_set 

它抛出的错误是

  

AttributeError:通用详细视图必须使用&gt;对象pk或slug调用ModelxUpdateView。

有人还可以澄清是否允许通过UpdateView编辑多个模型?我的意思是如果我要返回一个查询集,它会更新该查询集中的每个对象吗?

1 个答案:

答案 0 :(得分:2)

  

有人还可以澄清是否允许编辑多个模型   更新视图?我的意思是如果我要返回一个查询集,它会发生   更新该查询集中的每个对象吗?

不,UpdateView仅适用于单个对象。它继承自SingleObjectMixin,这就是它需要传入主键的原因;因为此主键在get_object方法中使用。

要进行多个对象更新,请尝试django-extra-views应用中的UpdatesWithInlines视图。

相关问题