2017-01-14 7 views
0

縦書きレイアウトがデフォルトでは機能していますが、フォームと送信ボタンの水平レイアウトは表示されません。__init__では問題があると思いますそれは示して、すべての権利横長の表示とクリスピーフォームの送信ボタンは機能しません

views.py

class sessioncreate(LoginRequiredMixin,CreateView): 

    model=Sessions 
    #fields=['title','abstract','track','speaker'] 
    form_class=SessionForm 

    def form_valid(self, form): 
     form.save(); 
     return HttpResponseRedirect('/sessions') 

form.py

from django.forms import ModelForm 
from app.models import Sessions 
from crispy_forms.helper import FormHelper 
from crispy_forms.layout import Submit 

class SesionsForm(ModelForm): 

    class Meta: 
     model=Sessions 
     fields=['title','abstract','track','speaker'] 

    def __init__(self, *args, **kwargs): 
     super(SessionForm, self).__init__(*args, **kwargs) 
     self.helper=FormHelper() 
     self.helper.form_class = 'form-horizontal' 
     self.helper.label_class = 'col-sm-offset-1 col-sm-2' 
     self.helper.field_class = 'col-sm-8' 
     self.helper.add_input(Submit('submit', 'Submit')) 

session_form.html

{% extends 'layout.html' %} 

{% load crispy_forms_tags %} 

{% block content %} 
<form method="post"> 
    {% csrf_token %} 
    {% crispy form %} 
</form> 
{% endblock %} 
+0

コンストラクタの最後に 'super()'を呼び出す – yedpodtrzitko

+0

私はPython 3.xを使っていますので、 'super().__ init __()'でsuperメソッドを呼び出そうとしましたが、これは正しい方法です....もしそうでなければ、正しい引数でそれを呼び出す方法を私に教えてください:) – harshityadav95

+0

ちょうど...それはここにあるように取るが、コンストラクタの最後に置く。 – yedpodtrzitko

答えて

0

私もこのMVAコースを通過して同じ問題に遭遇しました。私は、settings.pyファイルでブートストラップのバージョンを3ではなく4に変更し、forms.pyファイルにいくつかの変更を加えました。

def __init__(self, *args, **kwargs): 
    super(SessionForm, self).__init__(*args, **kwargs) 
    self.helper = FormHelper() 
    self.helper.form_group_wrapper_class = 'row' 
    self.helper.label_class = 'offset-md-1 col-md-1' 
    self.helper.field_class = 'col-md-8' 
    self.helper.add_input(Submit('submit', 'Submit')) 

forms.py settings.py

CRISPY_TEMPLATE_PACK = 'bootstrap4' 

おそらく答えは、あなたがしたいと思いますが、私はちょうど私のために働いていたものを共有したいと思っていません。

関連する問題