python - 我应该什么时候提交 Django 表单的结果?

标签 python django

我的表单内容必须提交到另一个应用程序服务器进行验证和执行(具体来说,我使用表单中发布的值调用 RESTful Web 服务)。该服务将返回 200 SUCCESS 或 400/409 错误,并带有描述确切字段错误的正文。

我应该什么时候提交?我应该在 View 中执行此操作吗:

if form.is_valid:
    result = submit_to_service(POST)
    if result.code in (400, 409):
        somehow_set_errors_on_the_form(form)
    else:
        go_on...

或者在 Form.clean 方法中?

def clean(self):
    result = submit_to_service(POST)
    if result.code in (400, 409):
        for field in result.errors:
            self._errors[field].append(result.errors[field])
    else:
        pass

哪一个更清楚?

最佳答案

validation and execution

clean() 形式中没有执行或有状态更改。请。表单的 clean() 应该只干扰表单上的数据,而不是其他任何地方。

如果存在有状态更改,则它必须位于非 GET 请求处理程序内的 View 函数中。

关于python - 我应该什么时候提交 Django 表单的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3525956/

相关文章:

python - FactoryBoy - 嵌套工厂/最大深度?

python - django elasticsearch 在数据库有记录时给出空记录

具有来自同一张表的 2 个外键的 Django 模型

html - Bootstrap 文本区域下的未对齐标签

python - 从大量条目创建可迭代列表

python - Eclipse 随机用空格替换制表符

python - 为什么 SafariDriver 不能点击特定元素,而 Chrome、FF、Edge 可以?

mysql - 如何配置Mysql以避免错误: Illegal mix of collations

django - SIGWINCH 被忽略。未守护进程

python - 为什么不在此函数 (urllib.urlopen) 中使用更少的代码行?