我相信我是非常密集的,但花了好几天的时间来试着弄清楚我做错了什么。django脆皮表格按钮没有显示
我
- 安装Django的脆皮形式(使用PIP)
- 加入 'CRISPY_TEMPLATE_PACK' 我的设置
- 加入 'crispy_forms' 我的应用程序
- 做了 'collectstatic'从下载的tar文件(因为模板和CSS不包含在该点中)
- 将'{%crispy_forms_tags%}添加到我的表单html文件中
- 从crispy_forms.helper和crispy_forms.layout导入到我的forms.py
我使用的是引导3,其中我直接编码,而不是使用引导程序的工具包
引导程序则在所有细我的页面和表单域也是这样,但按钮不会出现。
我的HTML如下:
{% extends 'base.html' %}
{% load crispy_forms_tags %}
<html>
<title>Add Guest</title>
<div class='container'>
{% block col1 %}
<div class='row'>
<div class="span3">
{% endblock %}
{% block col2 %}
<div class="span9">
<ul>
{% crispy form %}
</ul>
</div><!--/span9-->
{% endblock %}
</div><!--row-->
</div><!--/container-->
</html>
如果我改变香脆标签{%香脆MyForm的MyForm.helper%}我得到 'VariableDoesNotExist在' 加连续多(实际)语言。如上所述呈现表单域,但不是按钮。
我forms.py看起来是这样的:
from django.forms import ModelForm
from django import forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Fieldset, ButtonHolder, Submit
from .models import Author
class NewAuthorForm(forms.ModelForm):
class Meta:
model = Author
# If you pass FormHelper constructor a form instance
# It builds a default layout with all its fields
helper = FormHelper()
helper.form_method = 'post'
helper.add_input(Submit('save', 'save', css_class = 'btn-primary'))
我知道这里有一些冗余在进口方面,但这个数字是没有问题的。
最后,我base.html文件是:
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap 101 Template</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link href="{{ STATIC_URL }}css/bootstrap.min.css" rel="stylesheet">
<!-- note that there’s also blue.uni-form.css and dark.uni-form.css available if you want to try chan-->
<link rel="stylesheet" href="{{ STATIC_URL }}crispy_forms/static/uni_form/uni-form.css" type="text/css" />
<link rel="stylesheet" href="{{ STATIC_URL }}crispy_forms/static/uni_form/default.uni-form.css" type="text/css" />
<!-- uni-form JS library, optional -->
<script src="{{ STATIC_URL }}crispy_forms/static/uni_form/uni-form.jquery.js" type="text/javascript"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class='container'>
{% block col1 %}
<div class='row'>
<div class="span3">
{% endblock %}
{% block col2 %}
<div class="span9">
</div><!--/span9-->
{% endblock %}
</div><!--row-->
</div><!--/container-->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://code.jquery.com/jquery.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="{{ STATIC_URL }}js/bootstrap.min.js"></script>
</body>
</html>
我已经把香脆的表单模板在我的模板文件夹,它是在同一水平manage.py。正如我所说,所有bootstrap渲染罚款。
我很难过。任何想法感激地接受
同样的问题:(Django的1.6,脆皮形式1.4 – Juliusz
我提出了一个编码错误@Juliusz在表格的第一行我要把。 '类NewAuthorForm(forms.ModelForm)',而我应该把'类NewAuthorForm(ModelForm)',省略'窗体'。 – sidestrand
我已经放弃了现在试图解决我的问题几个月的香脆形式。耻辱,这似乎是一个很好的选择。 – sidestrand