有没有一种方法可以在没有对象的情况下使用UpdateView进行更新,因此我可以通过AJAX进行传递?我想为所有项目创建某种独特的UpdateView,我可以从选择中选择要更新的项目。
我可以使用UpdateView进行此操作,还是需要从头开始对视图进行编码_
答案 0 :(得分:0)
是的。在UpdateView中,您应该重写get方法(或post方法,具体取决于您要执行的操作),然后可以选择视图执行的操作,例如:
...
def get(self, request, **kwargs):
if 'id' in kwargs:
//perform update
else:
//do something else with AJAX
...
答案 1 :(得分:0)
是的,您可以通过在视图中定义一个get_object
函数,然后访问该函数中的相关数据来确定要更新哪个对象来实现此目的。
例如:
class SomeUpdateView(UpdateView):
...
def get_object(self):
#access info from the URL, like <pk> or <slug>
object_id = self.kwargs.get('pk')
#alternatively access the request.POST or request.GET data
some_info = self.request.POST.get('some_info')
#return a model instance based on some data in this function
return SomeModel.objects.get(pk=object_id)
...