Django:将发布的文件发送到其他表单

好吧,我必须将一个表单发布的文件发送到其他表单,我必须首先读取一个XML文件,如果该文件有效,我将重定向到下一个表单,该表单必须以过去的形式接收有效文件 . 我尝试过 Session ,但我不确定这是不是正确的方法,这是我的模特 .

class InitialForm(models.Model):
    ...
    name = models.CharField(max_length=50)
    xml = models.FieldField(label='Please choose an XML file')
    ...


class SecondForm(models.Model):
    ...
    name = models.CharField(max_length=50)
    pdf = models.FieldField(label='Please choose a PDF file')
    ...

我得到两种形式的原因是因为我必须首先阅读XML并对其进行验证,然后在下一种形式“SecondForm”中显示我刚刚从XML解析的数据,以便验证并向用户提供反馈 . 然后,只有当第一个文件有效时,才必须将这两个文件插入数据库中 .

欢迎任何帮助 . 提前致谢 .

回答(1)

2 years ago

我认为你需要的是一个form wizard,当你需要构建一个分成多个请求的表单时,Django会提供这种情况 .

从他们的文档中可以看出它是如何工作的:

用户访问向导的第一页,填写表单并提交 . 服务器验证数据 . 如果它无效,则会再次显示该表单,并显示错误消息 . 如果它有效,服务器会在后端保存向导的当前状态并重定向到下一步 . 对于向导中的每个后续表单,重复步骤1和2 . 一旦用户提交了所有表单并且所有数据都已经过验证,向导就会处理数据 - 将数据保存到数据库,发送电子邮件或应用程序需要执行的任何操作 .