Html Views.py处理表单数据
My form.htmlHtml Views.py处理表单数据,html,django,Html,Django,My form.html {{ form_field(task_form['execution_time']) }} <input type="text" name="admin_time"> 处理表单时,如果admin_time有值,则execution_time应等于admin_time 我怎样才能做到这一点? 我想要这样的东西,但它会让我失去爱 def get_context_data(self, *args, **kwargs): ctx = sup
{{ form_field(task_form['execution_time']) }}
<input type="text" name="admin_time">
处理表单时,如果admin_time有值,则execution_time应等于admin_time
我怎样才能做到这一点?
我想要这样的东西,但它会让我失去爱
def get_context_data(self, *args, **kwargs):
ctx = super(CreateTaskView, self).get_context_data(*args, **kwargs)
ctx['task_form'] = ctx.get('form')
if self.admin_time.is_valid():
task.execution_time=self.admin_time
else:
ctx['action'] = 'Add'
ctx['cancel_url'] = reverse('tasks.list')
return ctx
CreateView.get_context_数据用于将其他上下文发送到模板或覆盖exist one,并且仅当您必须呈现空值request.get时才会生成
您可以在request.POST上接收数据,所以它生成方法的顺序是:main dispatch->POST->form\u valid或form\u invalid->重定向到成功url。您可以看到没有get_context_数据,所以请从get_context_数据中删除那些奇怪的代码:
我可以看到您覆盖了form_valid,因此如果它运行-form已经有效,并且您可以从中获取清理的数据,如果您想执行一些额外的验证,请在form.save之前放置以下代码:
而且你不应该以你的有效形式返回ctx,因为在第一次返回后它永远不会到达这里
我还建议您查看CreateView类实现和Django教程和文档,如果您想了解您在那里做什么,请阅读并尝试所有教程,学习python。因为在这里,我们主要不支持这些问题。我基本上想做的是:如果字段admin\u time有值,那么execution\u time应该是admin\u time,这应该在处理表单时添加。任何帮助都将不胜感激
def get_context_data(self, *args, **kwargs):
ctx = super(CreateTaskView, self).get_context_data(*args, **kwargs)
ctx['task_form'] = ctx.get('form')
if self.admin_time.is_valid():
task.execution_time=self.admin_time
else:
ctx['action'] = 'Add'
ctx['cancel_url'] = reverse('tasks.list')
return ctx
if self.admin_time.is_valid():
task.execution_time=self.admin_time
else:
admin_time = form.cleaned_data['admin_time']
# check if it is not empty
if admin_time:
self.execution_time = admin_time