Django 中的 2 个表单、1 个视图、2 个 SQL 表

2023-12-23

我正在努力了解如何将两个 django 表单中的数据提交到两个单独的数据库表中相同的观点。我只想要一个提交按钮。尽管this https://stackoverflow.com/questions/1395807/proper-way-to-handle-multiple-forms-on-one-page-in-django问题让我更接近解决方案,我收到错误并且数据没有写入数据库。我认为这段代码实际上是相互检查两个表单,而不是一次性提交两个表单。有任何想法吗?

这是我尝试过的:

对于一种形式 --> 一张表。这有效,所以这是一个开始。

# views.py
def BookFormView(request):
    if request.method == 'POST':
    form = BookForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect("/books/")
    else:
        form = BookForm()
    return render(request, 'books/createbooks.html',
              {'form' : form})

但是,当我从 forms.py 添加此表单以获取后续的 views.py 时,我得到local variable 'book_form' referenced before assignment。这通常是一个容易解决的全局变量与局部变量问题,但我不知道在这种情况下这意味着什么。

def BookFormView(request):
    if request.method == 'POST':
        if 'book' in request.POST:
            book_form = BookForm(request.POST, prefix='book')
            if book_form.is_valid():
                book_form.save()
                return HttpResponseRedirect("/books/")

            bookdetailsform = BookDetailsForm(prefix='bookdetails')
        elif 'bookdetails' in request.POST:
            bookdetailsform = BookDetailsForm(request.POST, prefix='bookdetails')
            if bookdetailsform.is_valid():
                bookdetailsform.save()
                return HttpResponseRedirect("/books/")

            book_form = BookForm(prefix='book')
    else:
        book_form = BookForm(prefix='book')
        bookdetailsform = BookDetailsForm(prefix='bookdetails')
    return render(request, 'books/createbook.html',
            {'book_form' : book_form,
             'bookdetailsform': bookdetailsform})

根据问题的评论:

def BookFormView(request):
    if request.method == 'POST':
            book_form = BookForm(request.POST, prefix='book')
            bookdetailsform = BookDetailsForm(request.POST, prefix='bookdetails')
            if book_form.is_valid() and bookdetailsform.is_valid():
                book_form.save()
                bookdetailsform.save()
                return HttpResponseRedirect("/books/")
    else:
        book_form = BookForm(prefix='book')
        bookdetailsform = BookDetailsForm(prefix='bookdetails')
    return render(request, 'books/createbook.html', 
                  {'book_form': book_form, 'bookdetailsform': bookdetailsform})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 中的 2 个表单、1 个视图、2 个 SQL 表 的相关文章

  • 重新索引错误没有意义

    I have DataFrames大小在 100k 到 2m 之间 我正在处理这个问题的框架是如此之大 但请注意 我必须对其他框架执行相同的操作 gt gt gt len data 357451 现在这个文件是通过编译许多文件创建的 所以它
  • Python 按照层次结构按多个分隔符分割字符串

    我只想根据多个分隔符 例如 and 和 按顺序分割字符串一次 例子 121 34 adsfd gt 121 34 adsfd dsfsd and adfd gt dsfsd adfd dsfsd adfd gt dsfsd adfd dsf
  • 在 Python 中绘制分类数据的三个维度

    我的数据包含三个我试图可视化的分类变量 城市 五个之一 职业 四种之一 血型 四种之一 到目前为止 我已经成功地以一种我认为易于使用的方式对数据进行了分组 import numpy as np pandas as pd Make data
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • 如何使用 HTTP 标头发送非英语 unicode 字符串?

    我是 HTTP 相关问题的新手 我的问题是在 iOS 开发中 我想使用 HTTP 标头发送一个字符串 所以我使用 httpRequest setValue nonEnglishString forHTTPHeaderField custom
  • Seaborn 热图中的自定义调色板间隔

    我正在尝试绘制一个heatmap https seaborn pydata org generated seaborn heatmap html使用seaborn库 绘图函数如下所示 def plot confusion matrix da
  • 了解 asyncio 已经运行的永久循环和挂起的任务

    我在理解如何将新任务挂起到已经运行的事件循环中时遇到问题 这段代码 import asyncio import logging asyncio coroutine def blocking cmd while True logging in
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • Flask 中的 import 和 extends 有什么区别?

    我正在阅读 Flask Web 开发 在例4 3中 extends base html import bootstrap wtf html as wtf 我想知道 extends 和 import 有什么区别 我认为它们在用法上很相似 在什
  • 如何使用 xlrd 将新列和行添加到 .xls 文件

    如何向 xlrd 中的工作表添加新列和 或行 我有一个使用 open workbook 读取的 xls 文件 我需要在第一张表中添加一个新列 bouncebacks 然后在该表中添加新行 但我在 xlrd 文档中找不到任何显示如何添加新行和
  • python-polars 通过分隔符将字符串列拆分为许多列

    在 pandas 中 以下代码会将 col1 中的字符串拆分为许多列 有没有办法在极地做到这一点 d col1 a b c d a b c d df pd DataFrame data d df a b c d df col1 str sp
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • Django 测试 - NoReverseMatch

    为什么这个测试不起作用 这是我的观点 py class ObjectDetailView LoginRequiredMixin DetailView template name object detail html model Object
  • 如何在交互式绘图(Python)中获得鼠标指向的(x,y)位置?

    我使用 ipython 笔记本 带有魔法 matplotlib nbagg 我正在审查matplotlib widget Cursor但仅查看光标widgets Cursor http matplotlib org 1 4 3 exampl
  • 使 np.loadtxt 使用多个可能的分隔符

    我有一个程序可以读取数据文件 用户可以选择他们想要使用的列 我希望它对于输入文件更加通用 有时 列可能如下所示 10 34 24 58 8 284 6 121 有时它们可 能看起来像这样 10 34 24 58 8 284 6 121 我希
  • 如何在 Pytorch 中将一维 IntTensor 转换为 int

    如何将一维 IntTensor 转换为整数 这 IntTensor int 给出错误 KeyError Variable containing 423 torch IntTensor of size 1 我所知道的最简单 最干净的方法 In
  • 如何绘制多类分类器的精度和召回率?

    我正在使用 scikit learn 我想绘制精度和召回曲线 我正在使用的分类器是RandomForestClassifier scikit learn 文档中的所有资源都使用二元分类 另外 我可以绘制多类的 ROC 曲线吗 另外 我只找到
  • Scrapy的redirect_urls异常.KeyError

    我是 Scrapy 和 Python 的新手 最近推出了我的第一个蜘蛛 有一个功能似乎以前有效 但现在它只适用于我试图废弃的一些网站 代码行是 item url direct response request meta redirect u
  • 如何保持 python 3 脚本 (Bot) 运行

    不是母语英语 抱歉 英语可能很蹩脚 我也是编程新手 您好 我正在尝试使用 QueryServer 连接到 TeamSpeak 服务器来创建机器人 经过几天的努力 它有效 只有 1 个问题 而我却被这个问题困扰了 如果您需要检查 这是我正在使
  • Django DetailView 按外键过滤

    我有点困惑 想利用 DetailView 功能 使用外键作为我的过滤器来显示数据 基本上我的模型看起来像这样 class Category models Model name models CharField max length 30 s

随机推荐

  • 关闭 fancybox iframe 后 Chrome 中的后退按钮无法正常工作

    不久前我在 fancybox github 上发布了同样的问题 但当时问题无法解决 所以我想我可以在这里再试一次 在 Chrome 中 我打开 fancybox iframe 然后使用 iframe 页面上的链接进行导航 然后关闭 fanc
  • Scala REPL 中的嵌套环境

    是否有可能创建 enter Scala REPL 中的嵌套环境 这样之后exiting嵌套环境中 在退出环境中创建的所有变量绑定都会丢失 这就是我的wish会话可能如下所示 scala gt val x 1 x Int 1 scala gt
  • 自定义字体为 Android 中的某些字母组合提供了不正确的字形

    我在我的 Android 项目中使用自定义字体 由于某种原因 当文本包含字母时IJ一起 它给了我以下字形 这似乎是位于 uE2C5字体的 PUA 区域 个人I and J字形都存在于字体中 如果我将文本设置为 我可以让它们出现I J 它不是
  • 访问 Angular2 模板中的特定数组元素

    我有一个可以循环使用的数组ng for句法 然而 最终我只想访问该数组的一个元素 我不知道该怎么做 在我的组件脚本中我有 export class TableComponent elements IElement 在我的模板中 我可以通过循
  • 以编程方式原生 Android VPN

    这个问题存在变体 但我似乎无法理解某些东西 如果您阅读了功能末尾的内容工业控制系统 4 0 http developer android com about versions android 4 0 highlights html 其中提到
  • 如何跟踪迭代开始日期后已添加到冲刺中的 Azure 工作项?

    Folks 首先 这个问题基于这样的前提 我通过分析视图连接 Azure DevOps 数据 并且所有可用字段都已选择到视图中 我想跟踪开发团队是否坚持计划或处理已创建的积压项目或在冲刺开始后已添加到冲刺中的项目 但我不知道该怎么做 显然
  • 列出 Debian 中所有用户安装的软件包

    在我参加的一次网络安全竞赛中 我获得了一台安装了许多软件包的 Debian 虚拟机 并要求我清理无关或恶意的软件包 过去我用过dpkg l grep searchterm 以及执行此任务的常用包的列表 然而 这是极其低效且耗时的 为了加快我
  • Spring FactoryBean 和作用域一起工作

    我想一起使用 FactoryBeans 和作用域 具体来说 我希望将 FactoryBean 创建和返回的对象放置到指定的 可能是自定义的 范围中 问题在于执行以下操作
  • 如何更改 Winforms 按钮上第二行文本的字体大小和颜色?

    this Controls Add button button Font new Font Arial 8 button Name btn idDanych button Width 100 button Height 100 button
  • 奇怪的文件查找行为

    对于下面的两次交互 我希望两者输出相同的文件 但第二个交互写入文件末尾 唯一的区别是写入后的读取语句 我不明白发生了什么 我缺少什么 预期行为 gt gt gt f open test txt w gt gt gt f write 0123
  • Java API核心类的maven-javadoc-plugin和inheritDoc

    我正在编写自己的 Java 8 Stream 实现 并希望继承原始版本的 Javadocsjava util stream Stream界面 但是我无法让它工作 生成的 Javadoc 仅显示我的文档 但不显示扩展 Stream 接口的文档
  • 正则表达式:在一段文本中查找BB代码

    我正在尝试匹配随机文本中的 url BB 代码标记 示例文本 Lorem ipsum dolor sat amet consectetur adipiscing elit 网址 http www google com url http ww
  • 获取其中包含歌曲的流派名称列表

    我正在使用 CursorLoder 类从 android 的媒体内容提供程序获取流派列表 下面是我的光标查询来获取流派列表 public Loader
  • 将列表从 QSharedMemory 复制到 sip.voidptr 的 Pythonic 方法

    我正在使用 PyQT5 和 QSharedMemory 类 我正在创建一个可以容纳 6 个 1 字节元素的共享内存 为了将这些元素复制到共享内存数组中 我循环遍历 python 列表中的元素 如下所示 f shared mem data k
  • Windows批处理文件:查找目录,如果不存在,则创建,然后将文件移动到该目录

    我正在尝试创建一个批处理文件或其他脚本 以将一个文件夹的内容转移到另一个目录中包含其名称的文件夹中 例如 ShowName Episode Title mkv 应移至 movies showname 如果 movies showname 不
  • Powerpoint VBA 撤消

    我有 VBA 代码 可以处理 PowerPoint 文件中的许多幻灯片 部分代码临时调整幻灯片大小 以便我可以以不同的纵横比导出图像 我无法再次调整它们的大小 因为 PowerPoint 永远不会将它们的内容完全恢复到调整大小之前的样子 所
  • PHP:preg_match - “分隔符不能是字母数字或反斜杠”[重复]

    这个问题在这里已经有答案了 有谁知道这个正则表达式有什么问题吗 它在 RegexPal 和 RegExr 等网站上运行良好 但在 PHP 中它给我这个警告并且没有结果 Warning preg match function preg mat
  • 使用 constexpr-if 时出错:在 'constexpr' 之前预期有 '('

    我正在尝试使用 if constexpr 来检查某些内容 但遇到类似错误 constexpr 之前应有 前面没有 if 的 else 到目前为止我检查我的代码没有任何问题 我的编译标志是 g std c 17 main cpp includ
  • mac os x 下进程使用的内存

    给定PID 如何获取进程当前使用的内存 具体来说 我正在寻找 进程使用的私有物理内存 RAM 进程使用的交换空间 但我对映射文件和共享内存不感兴趣 简而言之 我想确定通过终止 PID 将释放多少内存 RAM 和交换 这有用吗 您可以使用ps
  • Django 中的 2 个表单、1 个视图、2 个 SQL 表

    我正在努力了解如何将两个 django 表单中的数据提交到两个单独的数据库表中相同的观点 我只想要一个提交按钮 尽管this https stackoverflow com questions 1395807 proper way to h