python - 未调用 CreateView 中的 Django form_valid() 和 form_invalid()

标签 python django django-forms django-generic-views

我目前正在使用 django 的 CreateView 将数据发布到数据库。不幸的是,我想保存和执行自定义逻辑的方法,form_valid()永远不会被调用。我在另一个堆栈溢出响应中读到 form_invalid() 可能会发现问题,但我无法调用该方法。似乎调用的唯一方法是 get(),我覆盖了它并在其中放入了打印语句。我做错了什么?

view.py中的类声明

class TeamCreate(CreateView): # Manipulate and use this Method instead of create_team
    model = Team
    # form_class = create_team_form
    fields = ['team_name', 'sport', 'sport_season']
    success_url = '/'

    def get(self, request, *args, **kwargs):
        self.user = request.user
        print 'happening1'
        return super(TeamCreate, self).get(request, *args, **kwargs)


    def form_valid(self, form):
        print 'happening2'
        # form.instance.save()
        # self.user.teams.add(form.instance)
        form.save()
        return super(form_valid, self).form_valid(form)

    def form_invalid(self, form):
        print "form is invalid"
        return http.HttpResponse("form is invalid.. this is just an HttpResponse object")

相关模板代码

{% block content %}
<form action="" method=”POST”>
     {% csrf_token %}
     {{ form|crispy }}
     <input class="btn btn-primary" type="submit" value="Create" />
</form>

最佳答案

显然 POST 周围的引号根本不是引号,而是偷偷摸摸的忍者生活破坏标记。 “对”。我要 sleep 了。

关于python - 未调用 CreateView 中的 Django form_valid() 和 form_invalid(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31667035/

相关文章:

django - 如何在 Django 表单中隐藏主键字段

python - Bash 或 Python 或 Awk 来匹配和修改文件

python - 如何将数据框中的字符串更改为日期时间值?

python - 如何运行 hyperopt 教程示例

python - 渲染而不传递请求

django - 验证空白 django 表单字段不起作用

python - 为什么在 Python 中使用线程和队列时需要无限循环

python - 无法更改(编辑)在 Django 中上传的文件

python - Django 1.7 长期迁移永无止境

python - Django SMTP [Errno 111] 连接被拒绝