首页 > 解决方案 > 具有两种形式的 Django 视图未发布一个

问题描述

我试图使用一种表单来获取两个不同模型的数据,为此,我更改了我的创建视图 get_context_data 函数,如下所示:

class tarea_crear(CreateView):
    template_name = "crud_tareas/tarea_crear.html"
    form_class = tareaForm
    success_url = reverse_lazy('tareas:crear-tarea')

    def get_context_data(self, **kwargs):
        context = super(tarea_crear, self).get_context_data(**kwargs)
        context['form'] = {'audiosForm':audiosForm,'tareaForm':tareaForm}
        return context

这让我可以在我的模板上调用这两个表单,如下所示:(别担心,我记得 crfs 标签和表单)

{{form.tareaForm.as_p}}
{{form.audiosForm.as_p}}
<input type="submit" value="Crear Tarea">

我还需要验证第一个表单中的一些信息,我在视图中这样做了:

def form_valid(self, form):
    titulo = form.cleaned_data['titulo']
    if not any(i.isdigit() for i in titulo):
             return super(tarea_crear, self).form_valid(self, form)
    return super(tarea_crear, self).form_invalid(self, form)

问题是,当我对表单进行 POST 时,实际上只发送了前半部分数据,我知道这一点是因为我无法在视图中调用form.cleaned_data['audios']而不出现错误。知道如何处理具有两种形式的视图吗?

标签: django

解决方案


推荐阅读