不同模型的Django多种形式

西蒙德

我是Django的新手,但是因为一天来我一直无法解决我的问题,所以我一直坚持不懈。

我必须创建具有很多字段的表单。这些字段来自不同的模型,我想一次保存它们。我想以光滑的方式显示它,以便用户体验会更好,并且不会被大量填充字段所淹没。光滑的部分不是问题。我的问题是在同一页面上的多个div中呈现多个表单。在这种情况下,我不仅要显示候选人详细信息,而且还要显示候选人详细信息表单。

在这里,我的实际代码仅适用于一种有效的表单。

形式:

class CandidateApplicationForm(ModelForm):
position = forms.ChoiceField(choices=POSITION, widget=forms.RadioSelect)

class Meta:
    model = Candidate
    fields = ['firstName',
              'lastName',
              'mailAddress',
              'address',
              'city',
              'country',
              'nationality',
              'position',
              ]
    widgets = {
        'firstName': forms.TextInput(attrs={'class': 'input'}),
        'lastName': forms.TextInput(attrs={'class': 'input'}),
        'address': forms.TextInput(attrs={'class': 'input'}),
        'city': forms.TextInput(attrs={'class': 'input'}),
        'nationality': forms.TextInput(attrs={'class': 'input'}),
        'Type of programme': forms.TextInput(attrs={'class': 'input'}),
    }

CandidateDetailsForm(ModelForm)类:

class Meta:
    model = CandidatesDetail
    fields = ['birthPlace',
              'birthDate',
              'nationality',
             ]

观点 :

类RegisterCandidate:

def __init__(self):
    self.method = None

def candidateapply(request):

    apply = candidateregistrationform.CandidateApplicationForm()

    if request.method == 'POST':
        form_candidate = candidateregistrationform.CandidateApplicationForm(request.POST)
        if form_candidate.is_valid():

            candidate = form_candidate.save(commit=False)
            candidate.save()

        else:
            apply = candidateregistrationform.CandidateApplicationForm()
    return render(request,
                  'candidateapplication.html',
                  {'form': apply})


def candidatedetails(request):
    apply = candidateregistrationform.CandidateDetailsForm()

    if request.method == 'POST':
        form_candidatedetails = candidateregistrationform.CandidateDetailsForm(request.POST)
        if form_candidatedetails.is_valid():

            candidate = form_candidatedetails.save(commit=False)
            candidate.save()

        else:
            apply = candidateregistrationform.CandidateApplicationForm()
    return render(request,
                  'candidateapplication.html',
                  {'form': apply})

和HTML:

{% csrf_token %}
  {% for field in form %}
  <p>
    {{ field.label_tag }}<br>
    {{ field }}
    {% for error in field.errors %}
      <p style="color: red">{{ error }}</p>
    {% endfor %}

  {% endfor %}

谢谢你的帮助。

奥列克西·杜布尼亚克

就像dirkgroten所说的,yep创建了一个具有两种形式的单视图函数:

def candidatedetails(request):
    candidate_application_form = candidateregistrationform.CandidateApplicationForm()
    candidate_details_form = candidateregistrationform.CandidateDetailsForm()

    ...

    return render(request,
                  'candidateapplication.html',
                  {'candidate_application_form': candidate_application_form, 
                    'candidate_details_form', candidate_details_form})

现在您将能够呈现这些表单或特定字段

{{ candidate_application_form }}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django多种形式

来自分类Dev

Spring MVC模型用于多种形式

来自分类Dev

多种形式的UpdateFrame

来自分类Dev

AngularJS-多种形式-一个ng模型?

来自分类Dev

WordPress重力形式多种形式多种形式

来自分类Dev

具有多种形式的Django-TinyMCE

来自分类Dev

一页上的多种形式的Django值错误

来自分类Dev

具有多种形式的Django-TinyMCE

来自分类Dev

一页上的多种形式的Django值错误

来自分类Dev

多种形式的数据获取

来自分类Dev

多种形式的数据获取

来自分类Dev

处理多种形式,Spring

来自分类Dev

AJAX Post多种形式

来自分类Dev

Rails中的多种形式

来自分类Dev

结合多种形式提交

来自分类Dev

在没有Django默认模型形式的情况下在Django中处理同一页面上的多种形式

来自分类Dev

避免以html形式提交多种形式

来自分类Dev

改革宝石:将一种模型用于多种形式

来自分类Dev

一个模型的Rails 4 Active Admin多种形式

来自分类Dev

当将多种形式的相同ng模型设置为必需时,IE 11中的验证问题

来自分类Dev

Rails一种模型多种形式一页

来自分类Dev

如何区分在Django中以一种形式提交的多种形式?

来自分类Dev

传递多种形式的视图以在Symfony2中的不同服务中定义

来自分类Dev

使用Jquery将多种形式发送到不同的PHP页面

来自分类Dev

使用Jquery将多种形式发送到不同的PHP页面

来自分类Dev

jQuery验证插件多种形式

来自分类Dev

多种形式收听ng-dirty

来自分类Dev

局部类具有多种形式

来自分类Dev

从多种形式的Ajax发送数据