首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:保持数据以多个单独形式可见

Django:保持数据以多个单独形式可见
EN

Stack Overflow用户
提问于 2014-10-24 21:21:08
回答 1查看 63关注 0票数 0

我在三个选项卡中有三个表单,分别在一个模板中。

我填写第一个选项卡,提交,填写第二份表格,提交,填写第三份表格,提交。

在保存数据后,是否有方法将数据保存在每个表单中?我要把他们都展示在一起。

不,当我保存第二个表单时,我会丢失第一个表单上的数据。

input.html:模板

代码语言:javascript
复制
<form class="tab-pane fade in active" id="demographics" method="post" >
    <input type="hidden" name="form_id" value="demographics">
    {%crispy frm%}
</form>
<form class="tab-pane fade" id="diagnosis" method="post">
     <input type="hidden" name="form_id" value="diagnosis">
    {%crispy frm_d%}
</form>
<form class="tab-pane fade" id="a_b_sickle" method="post">
     <input type="hidden" name="form_id" value="a_b_sickle">
    {%crispy frm_a_b_s%}
</form>

views.py

代码语言:javascript
复制
def input(request):

    context = RequestContext(request)

    if request.method == 'POST':
        submitted = request.POST.get('form_id', '')
        print submitted

        if submitted == 'demographics':
            # Get the Form1 instance
            my_demographics = DemographicForm(request.POST)
            #my_diagnosis = DiagnosisForm()

            if my_demographics.is_valid():
                my_demographics_object= my_demographics.save()
                my_diagnosis=DiagnosisForm({'patient': my_demographics_object.patient_id, 'diagnosis_option': 'b-thalassaemia syndromes'})
                my_a_b_sickle=A_b_sickle_thalForm({'patient': my_demographics_object.patient_id})
            else:
                my_diagnosis=DiagnosisForm()
                my_a_b_sickle = A_b_sickle_thalForm()


        elif submitted == 'diagnosis':
            my_diagnosis = DiagnosisForm(request.POST)
            my_demographics = DemographicForm()
            my_a_b_sickle = A_b_sickle_thalForm()
            if my_diagnosis.is_valid():
                my_diagnosis_object=my_diagnosis.save()
                my_a_b_sickle =A_b_sickle_thalForm({'patient': my_diagnosis_object.patient})

            else:
                my_demographics = DemographicForm()
                my_a_b_sickle = A_b_sickle_thalForm()

        elif submitted == 'a_b_sickle':
            my_a_b_sickle = A_b_sickle_thalForm(request.POST)
            my_demographics = DemographicForm()
            my_diagnosis = DiagnosisForm()

            if my_a_b_sickle.is_valid():
                my_a_b_sickle.save()

        else:
            raise ValueError('No form specified !')
    else:
        my_demographics = DemographicForm()
        my_diagnosis = DiagnosisForm()
        my_a_b_sickle= A_b_sickle_thalForm()

return render(request,'input.html', {'frm':my_demographics, 'frm_d': my_diagnosis, 'frm_a_b_s': my_a_b_sickle})

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-10-24 21:44:18

您可以使用ajax提交它们,也可以将它们发送回您的上下文中。如果可以通过请求之间的任何关联获取保存的对象,则可以尝试:

对于第二种方法,您可以尝试这样的方法:

代码语言:javascript
复制
my_demographics = DemographicForm(my_demographic_object)
my_diagnosis = DiagnosisForm(my_diagnosis_object)
my_a_b_sickle= A_b_sickle_thalForm(my_a_b_sickle)

return render(request,'input.html', {'frm':my_demographics, 'frm_d': my_diagnosis, 'frm_a_b_s': my_a_b_sickle})

实际上,您甚至可以通过使用ModelForm的“实例”属性,将其作为一个更新表单使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26556467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档