Как преобразовать представление на основе функций в UpdateView?
Я слишком долго смотрел на код... но до конца не могу разобраться...
Я пытаюсь преобразовать представление на основе функций в представление на основе классов.... Я сделал это с CreateView, но UpdateView не дает мне покоя. Он не принимает мое обновление.... Я могу заставить представление принять мое обновление... но оно не сохраняет его.... Я не понимаю...
Вот мое представление на основе функций...
def update_task_update_view(request, pk):
task = Task.objects.get(id=pk)
form = TaskForm(request.POST or None, instance=task)
if request.method == "POST":
if form.is_valid():
form.save()
return redirect("MyTasks:task_detail", pk=task.id)
context = {
"form": form,
"task": task
}
return render(request, "partials/task_form.html", context)
А вот моя попытка создать представление на основе класса....
class UpdateTaskUpdateView(LoginRequiredMixin,UpdateView):
model = Task
form_class = TaskForm
template_name = 'partials/task_form.html'
def post(self, request, *args, **kwargs):
form_class = self.get_form_class()
form = self.get_form(form_class)
if form.is_valid():
task = form.save()
task.save()
return redirect("MyTasks:task_detail", pk=task.id)
else:
return render(request, "partials/task_form.html", {
"form":form
})
Это представление на основе функций работает нормально... никаких проблем с ним нет. Заранее спасибо за любые мысли.
Благодаря помощи FB...Travis Tucker....
Я сделал это вместо этого, и, кажется, все работает нормально...
class UpdateTaskUpdateView(LoginRequiredMixin,UpdateView):
model = Task
form_class = TaskForm
template_name = 'partials/task_form.html'
def form_valid(self, form):
form_class = self.get_form_class()
form = self.get_form(form_class)
if form.is_valid():
task = form.save()
task.save()
return redirect("MyTasks:task_detail", pk=task.id)
else:
return render(request, "partials/task_form.html", {
"form":form
})