2017-01-14 24 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 __()'调用超级方法,这是正确的方法....如果是这样,你能告诉我如何用正确的参数来调用它:) – harshityadav95

+0

只是...把它作为它在这里,但把它放在构造函数的末尾。 – yedpodtrzitko

回答

0

我也经历了这个MVA课程,并且遇到了同样的问题。我在settings.py文件中将引导版本切换为4而不是3,并在forms.py文件中做了少量更改。

settings.py

CRISPY_TEMPLATE_PACK = 'bootstrap4' 

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')) 

没有可能的答案,你会想,但我只是想分享什么为我工作。