UpdateView从一开始就可以在没有对象的情况下工作吗



有没有一种方法可以在不首先更新对象的情况下使用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)
...

相关内容

最新更新