#django
#django
Вопрос:
Есть ли способ использовать UpdateView без объекта для первого обновления, чтобы я мог передать его через AJAX? Я хочу создать какой-то уникальный UpdateView для всего элемента, где я могу просто выбрать элемент, который я хочу обновить, из выбора.
Могу ли я сделать это с помощью UpdateView или мне нужно будет закодировать представление с нуля_
Ответ №1:
ДА. В вашем UpdateView вы должны переопределить метод get (или метод post, в зависимости от того, что именно вы хотите сделать), вы можете выбрать, что ваш view делает после этого, например:
...
def get(self, request, **kwargs):
if 'id' in kwargs:
//perform update
else:
//do something else with AJAX
...
Ответ №2:
Да, вы можете сделать это, определив 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)
...