django默认形成多个表单,其中一个字段相同

时间:2017-12-07 04:08:55

标签: django forms

我有一个链接列表,(A,B,C,D,)每个链接打开相同的弹出窗体,其中包含字段(名称,电子邮件,区域,服务) 除SERVICE之外的所有输入都是用户输入。 我希望服务字段具有链接的默认名称。

EXAMPLE: 

LINK A

---FORM-------

NAME= .........

EMAIL=........

REGION=........

SERVICE=FORM A

===========================

LINK B

---FORM-------

NAME= .........

EMAIL=........

REGION=........

SERVICE=FORM B

====================================

我希望服务字段具有该默认值。 我怎样才能在Django中实现这一点??????

1 个答案:

答案 0 :(得分:1)

您可以在forms.py文件中创建基本表单和其他表单:

from django import forms
class BaseForm(forms.Form):
    name = forms.CharField(label="Name")
    email = forms.EmailField(label="Email")
    region = forms.CharField(label="Region")

class AForm(BaseForm):
    service = forms.CharField(initial="A")

class BForm(BaseForm):
    service = forms.CharField(initial="B")

class CForm(BaseForm):
    service = forms.CharField(initial="C")

class DForm(BaseForm):
    service = forms.CharField(initial="D")

现在,在您的视图中,您可以添加以下表单:

def example_view(request):
    context = {
        'aform':AForm(),
        'bform':BForm(),
        'cform':CForm(),
        'dform':DForm()
    }
    template = "xyz.html"
    return render(request, template, context)

现在在'xyz.html'中,您可以使用上下文变量访问这些表单:aform,bform,cform,dform。