如何在Django表单中将两个表单字段呈现为一个字段?

时间:2019-07-30 06:36:43

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

我正在Django应用程序上工作,我需要以不同的方式呈现表单。

该表单包含与一个人相关的多个字段。

 1. Firstname
 2. Lastname
 3. Email
 4. Address
 5. City
 6. Country
 7. Phone
 8. Pincode

我的应用程序中有两个流程。在第一个流程中,我可以呈现所有表单字段并在用户输入一些数据并提交时保存它们。

但是在第二个流程中,我只需要显示以下三个字段。

 1. Name - *Combination of Firstname and Lastname*
 2. Email
 3. Phone

在名称字段中输入的数据应以空格-分隔,并另存为名字和姓氏。对于表单中其他未显示的必填字段,我可以填充空值并将模型保存在后端中。

为每个流程以不同的方式呈现表单的最佳方法是什么?

Python: 3.7.3
Django: 2.1.5

1 个答案:

答案 0 :(得分:0)

您可以使用请求的发布/获取功能。例如:sudo代码

def DataView(request):
    if request.method == 'POST':
        form = DataForm(request.POST)
        if form.is_valid():
            form.save()
            return render(request, 'users/form1.html', {'form': form})
        else
            ValidationError(_('Please login-in first'), code='invalid')
    else: 
        #do your magic here. make a new form with limited fields or render this old form on another page where in html you can limit/modify the fields.
        form = DataForm1()
        return render(request, 'users/form1.html', {'form': form})