【发布时间】:2021-12-05 16:49:41
【问题描述】:
我目前有一个 Django 应用程序,并且正在使用内置的表单验证在用户提交时生成表单错误。一切正常。我的问题是我允许用户将文件附加到页面......如果表单验证失败,文件会消失,用户必须重新附加它们并且很可能会忘记,因为他们已经附加了一次。不是最佳的用户体验。我已经看到可以利用 Javascript 的地方,但这不是有点违背 Django 表单的目的吗?
提前感谢您的任何想法。
【问题讨论】:
-
那么,您的问题是什么?您在寻找什么样的解决方案?出于安全原因,浏览器不允许文件输入来持久化文件,所以这是不可能的。使用 JavaScript 将为您提供最佳的用户体验解决方案。如果您不想使用 JS,可以将表单分为两步:第一步用于基于文本的输入,第二步用于文件输入(但设置起来会稍微复杂一些)。
-
@xyres 感谢您的回复。会考虑的。
-
如果不想在 JS 中重写验证逻辑,可以使用 AJAX 提交表单,让 Django 进行验证。这可能是最简单和最好的解决方案。
-
文件是大量资源,django 会在服务器端进行验证,因此如果验证失败,则会产生开销。您可以做的一件事是在前端使用 js 编写一些验证逻辑,然后如果通过,您可以将数据和文件传递给 django。我知道这有点乏味,但这是您可以实现的权衡结果。
标签: django django-models django-rest-framework django-views django-forms