【问题标题】:Django request.GET to display value of form fieldDjango request.GET 显示表单字段的值
【发布时间】:2013-10-15 00:37:25
【问题描述】:

有没有一种方法可以在提交表单之前访问我的表单字段中的值。

我需要将我的一个字段的值存储在 request.session[] 中,以便以后访问它(在同一视图中)。我尝试使用 request.GET 但它总是没有。

request.GET.get('name')

其中 name 是模型中的字段。

更新

我想存储表单字段的值,它是每次显示表单时生成的随机值。我的 models.py 包含一个 random() 方法,它是该字段的默认值。

我想将字段值存储在会话中,以便在从该页面浏览更多页面后返回该页面后可以获得相同的字段值

这就是我正在做的:

Django request.session does not resolve

【问题讨论】:

  • 试试POST 而不是GET
  • 嗨,也许你应该以不同的方式提出这个问题。您是在说:“有没有一种方法可以让我在提交表单之前访问表单字段中的值。”但唯一的方法是通过客户端 Javascript,因为您还没有向服务器发送任何内容。请澄清
  • 我认为您正在寻找的只是 request.GET['name']
  • @MauroRocco 是的,我需要能够在显示名称字段时访问它的值。我需要将该值存储在会话中。所以我认为 request.GET 可能是获得价值的一种方式。对不对?
  • 名称字段,由用户填写还是来自数据库?您想在单击 SUBMIT 或 BEFORE 按钮后加入会话吗?如果可以的话,解释一下真实的场景。

标签: django django-forms django-views django-sessions


【解决方案1】:

在模型中使用随机时首先要小心:

Random/non-constant default value for model field?

一旦这很清楚,我想您在视图中初始化表单,您是否需要访问表单并获取将其放入会话的值。 例如

form = MyModelForm();
request.session['your_session_key'] = form.data['field_name']

据我了解,在某些情况下,您希望在会话的表单中设置此值,为此您可以使用此处所述的初始数据。

https://docs.djangoproject.com/en/dev/ref/forms/api/#dynamic-initial-values

希望对你有帮助

【讨论】:

  • 我已经在使用你在链接中提到的默认字段的可调用对象。并且还一直在使用初始方法从会话中为其赋予价值。但是你提到的方式是不正确的。我已经编辑了您的答案以反映新的变化。谢谢!
  • 但是当表单以新的随机值显示时我遇到了问题。当我调试时,我在会话中得到一个随机值,但是当显示表单时,它显示不同的值......我猜这是因为它会再次进入该视图。您能否检查我在问题中指定的链接。这是我用于模型的代码。
  • 我认为这是另一个问题。将其作为一个新问题发布,包括您的代码。并在评论中发布链接
猜你喜欢
  • 2021-01-22
  • 2021-11-10
  • 2017-07-29
  • 2020-10-24
  • 1970-01-01
  • 2015-08-20
  • 2019-05-02
  • 1970-01-01
相关资源
最近更新 更多