Django自定义视图从1.1更新到2.2后停止工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django自定义视图从1.1更新到2.2后停止工作相关的知识,希望对你有一定的参考价值。

背景故事。我从两个人手中接手了一个网站,他们因为经济原因想放弃这个网站,但他们唯一的客户不想改变他们的系统,所以我接下了这个工作来维护它。

我从1.1更新到了Django 2.2,看起来似乎完美无缺,但一个特定的视图停止工作,并返回了 内部服务器错误(500). 我排除了几个小时的故障,发现核心问题出在ScheduleView上。如果我把视图改成Django预制视图,就能正常工作。我漏掉了什么?

ScheduleView类

class ScheduleView(TherapistRequiredMixin, SuccessMessageMixin, FormView):
form_class = ScheduleForm
template_name = "schedule.html"
success_message = "Nya bokningstillfällen är skapade"




def get_success_url(self):
    return reverse('schedule')

def form_valid(self, form):
    ret = form.save()
    if ret:
        messages.error(self.request, ret)
        # return super(ScheduleView, self).form_invalid(form)
        return super().form_invalid(form)
    else:
        # return super(ScheduleView, self).form_valid(form)
        return super().form_valid(form)
答案

问题解决了。这是Django 2.2中的一个语法错误,所以我被迫给出了一个'渲染器'的参数。

以上是关于Django自定义视图从1.1更新到2.2后停止工作的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 django 模板中的不同提交按钮在更新视图中自定义成功 url?

python2----Django----笔记

Django 2.2 如何在列表视图中禁用复选框

为啥我的 Facades 在更新到 Laravel 7.3 后停止工作?

PPv3-OCR自定义数据从训练到部署

从 Django 中基于类的通用视图自定义表单变量的首选方法是啥?