【问题标题】:django form variabledjango 表单变量
【发布时间】:2010-10-06 23:16:34
【问题描述】:

我在这个问题上花费了太多时间,并且开始认为它 无法在 Django 中完成。我正在从 postgres 中提取病原体名称列表 数据库到一个下拉框。用户选择病原体,需要id 通过 django 传回数据库,以便进一步检索 更多数据。 请看

http://dpaste.com/119358/ 用于下拉代码。

问题在于 select id = 语句位于表单所在点的上方 检索病理 id。 django 语句必须放在这个 点或下拉菜单不起作用。有没有人写过类似的东西 找到解决办法了吗?

最大

【问题讨论】:

  • 为什么不起作用?您是否缺少选择的结束标签?
  • 我认为这个问题是无效的。为什么您的选择标签的 id 需要与数据库中单个病理记录的标识符有任何关系?本题中的车马不应该以任何方式联系起来。
  • 你应该去你的其他问题并选择正确的答案,如果他们有一个。
  • 请在问题本身中包含任何示例代码。您提供的 dpaste 页面将于 2009 年 3 月 13 日被删除,但此问题将保留在 Stack Overflow 中。

标签: django drop-down-menu django-forms


【解决方案1】:

您的 HTML 中的 select 标签的 id 不需要对您的病理记录有任何了解。您的代码是正确的,除了缺少关闭选择标记。

映射到 /pathology/ 操作 URL 的 Django 视图需要处理 POST 方法并将病理 id 从请求中提取出来,如下所示:

pathology_id = request.POST['pathology']

现在您可以通过其 id 在数据库中查找该对象,并生成一个新页面/表单或您需要对其执行的任何业务逻辑。

您需要在 request.POST['...'] 调用中使用的字典键基于您为选择元素指定的名称,在本例中为“病理学”。

【讨论】:

  • pathology() 恰好需要 2 个参数(1 个给定)是我得到的错误,这似乎是说变量没有通过。我确实在视图中有 pathology_id=request.POST['pathology'] 。我现在也有结尾。最大
  • 所选病理 id 不会作为参数传递给您的视图,而是作为附加到“请求”对象的 POST 数据。您的视图的函数签名应该是这样的:def pathology (request): ...
  • 谢谢!!谢谢!!谢谢!!!我终于让所有的小部件一起工作了。是的,我现在意识到 def pathology(request) 而不是 def pathology(request,pathogen)。抱歉,我一直很讨厌这个问题,但我很害怕启动并运行一些东西,而且我是 Django 的新手。
  • 不用担心,很高兴为您提供帮助。请使用上/下投票按钮旁边的复选标记表示“接受的解决方案”。这样做会获得声誉积分,还有助于确保您在未来得到问题的答案。
【解决方案2】:

Django 的form handling library 是管理HTML 表单的好工具。它将从数据库中提取选项,为下拉框生成 HTML 代码,并以最少的代码为您将选择保存到数据库中。

【讨论】:

    猜你喜欢
    • 2015-06-02
    • 2011-01-24
    • 2016-05-21
    • 2012-02-22
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 2021-02-27
    相关资源
    最近更新 更多