2017-02-19 10 views
0

Crispy Formsを使用してフォームを見栄え良くしています。私は私のforms.pyに次き:中続いDjango Crispyフォーム送信ボタン

from django import forms 
from .models import Team 
from crispy_forms.helper import FormHelper 
from crispy_forms.layout import Submit, Layout, Field 
from crispy_forms.bootstrap import (
    PrependedText, PrependedAppendedText, FormActions) 

class CreateTeamForm(forms.ModelForm): 
    class Meta: 
     model = Team 

     fields = [ 'Project_name', 'Project_number' 
        ] 

     helper = FormHelper() 
     helper.add_input(Submit('submit', 'Submit', css_class='btn-primary')) 

     helper.form_method = 'POST' 

views.py

def create_team(request): 
    if request.method == 'POST': 
     form = CreateTeamForm(request.POST, request.FILES) 
     if form.is_valid(): 
      form.save() 
      return render('/teams/my_team.html',{''}) 
    else: 
     form = CreateTeamForm() 

    return render(request, 'teams/team_form.html', {'form':CreateTeamForm()}) 

そして最後に私のテンプレートで:

{% extends "main/base.html" %} 
{% load crispy_forms_tags %} 
{% block content %} 
    <div class="row"> 
     <div class="jumbotron"> 
      {% crispy form %} 

     </div> 
    </div> 
{% endblock %} 

は、しかし、私は「ISNと呼ばれるボタンを提出マイ表示されます。私は簡潔な形式のドキュメントを読んだので、私の実装で何か問題があるとは思えません。送信ボタン以外のすべてが表示されます。何か案は?

答えて

4

FormHelperは、Metaクラスではなく、フォームクラスの属性である必要があります。あなたのコードの一部インデント解除:

class CreateTeamForm(forms.ModelForm): 
    class Meta: 
     model = Team 

     fields = [ 'Project_name', 'Project_number' ] 

    helper = FormHelper() 
    helper.add_input(Submit('submit', 'Submit', css_class='btn-primary')) 
    helper.form_method = 'POST' 
0

このソリューションは、私のために働いた

from django.forms import ModelForm 
from crispy_forms.helper import FormHelper 
from crispy_forms.layout import Submit 

class BillForm(ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(BillForm, self).__init__(*args, **kwargs) 
     self.helper = FormHelper() 
     self.helper.add_input(Submit('submit', 'Submit', css_class='btn-primary')) 
     self.helper.form_method = 'POST' 

    class Meta: 
     model = Bill 
     fields = ('__all__') 

あなたはこのexemple以下__init__メソッド内で、あなたのヘルパーを定義して、あなたはあなたのテンプレートでこれを置く:

{% load crispy_forms_tags %} 
{% crispy form %} 

あなたのビュー/アクションには、そのようなものがあります。

form = BillForm() 
関連する問題