【问题标题】:(Django) How to keep input values after form submit(Django)如何在表单提交后保留输入值
【发布时间】:2021-09-16 06:31:04
【问题描述】:

我有一个看法:

我想要的是,每当我提交表单 (if request.POST) 时,无论表单是否有效,输入的值都不会消失。

输入 event_form.description, event_form.event_type, event_form.dfkl_id 在单击提交后保持其值,但由于某种原因 datetimepickers 的值消失了。

提交表单时如何让datetimepickers中的输入值不消失?

【问题讨论】:

  • 发布表单及其内容

标签: django django-views django-forms django-templates


【解决方案1】:

您需要返回经过验证的相同表单,才能返回相同的输入内容和表单错误。还要在定义上下文数据后重新定位您的POST 请求(在data 之后) 像这样:

if request.POST:
    event_form = EventForm(request.POST, instance=event)
    if event_form.is_valid():
        [... validate logic ...]
        return HttpResponseRedirect('/events')
    data.update({'event_form':event_form})
    return render(request, template_name, data) 

现在如果event_form 没有通过验证,那么它有一个要返回的路由。

【讨论】:

  • 嗨 Lewis,这听起来很有希望,但是我收到了 Exception Value: name 'args' is not defined 消息。我应该如何定义 args?谢谢。
  • 由于您没有提供视图的GET 部分,我看不到您是如何构建内容数据的。您能否提供它,以便我可以编辑答案。
  • 问题已编辑完整视图,希望对您有所帮助。非常感谢。
  • 仅供参考:我定义了 args = {} 之类的参数,然后我收到此错误消息:VariableDoesNotExist at /events/ Failed lookup for key [user_tz] in [{'True': True, 'False': False, 'None': None}, {}, {}, {'event_form': <EventForm bound=True, valid=False, fields=(title;description;dfkl_number;equipments;event_type;user;start_time;end_time;dfkl_id)>}]
  • 好吧,现在在定义data 之后移动整个request.POST 部分。因为您需要同一视图中的上下文数据。我已经编辑了我的答案以反映来自args 的变量变化 --> data
猜你喜欢
  • 2019-08-24
  • 2012-12-01
  • 2021-01-13
  • 2021-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-18
相关资源
最近更新 更多