有没有一种方法可以在不首先更新对象的情况下使用UpdateView,这样我就可以通过AJAX传递它?我想为所有项目创建某种独特的UpdateView,我可以从中选择要更新的项目。
我可以用UpdateView做到这一点吗?或者我需要从草稿_ 中对视图进行编码
是。在您的UpdateView中,您应该覆盖get方法(或post方法,具体取决于您想要做什么(,然后您可以选择您的视图做什么,例如:
...
def get(self, request, **kwargs):
if 'id' in kwargs:
//perform update
else:
//do something else with AJAX
...
是的,您可以通过在视图中定义get_object
函数,然后访问该函数中的相关数据来确定要更新的对象。
https://docs.djangoproject.com/en/3.1/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.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)
...