django-crispy-forms:form_class出现,但label_class和field_class没有出现

标签 django forms twitter-bootstrap twitter-bootstrap-3 django-crispy-forms

这是我第一次使用crispy-forms,我正在尝试使用bootstrap 3基于ModelForm制作水平crispy-form。在模板的输出中显示“horizo​​ntal-form”,但显示“label_class”和“字段_类”。我浏览了许多文档和 stackoverflow,包括 this question似乎没有任何效果。

我的表格:

from django.forms import ModelForm
from panews.models import Story
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout

class StoryForm(ModelForm):
    class Meta:
        model = Story
        fields = ['title', 'subtitle', 'content', 'variables']

    def __init__(self, *args, **kwargs):
        super(StoryForm, self).__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.form_method = "POST"
        self.helper.form_class = "horizontal-form"
        self.helper.label_class = "col-lg-2"
        self.helper.field_class = "col-lg-8"
        self.helper.layout = Layout(
            'title',
            'subtitle',
            'content',
            'variables',
        )

这是模板:

{% extends "base.html" %}
{% load crispy_forms_tags %}

{% block main %}

            <div class="container">
                        {% crispy form %}
            </div>

{% endblock %}

这是输出:

<main>

            <div class="container">


<form  class="horizontal-form" method="post" ><input type='hidden' name='csrfmiddlewaretoken' value='phDTwXgeNifQ8DJT8VWtG2stLEDA4LQS' /> <div id="div_id_title" class="control-group"><label for="id_title" class="control-label requiredField">
                Title<span class="asteriskField">*</span></label><div class="controls"><input class="textinput textInput" id="id_title" maxlength="50" name="title" type="text" /> </div></div><div id="div_id_subtitle" class="control-group"><label for="id_subtitle" class="control-label ">
                Subtitle
            </label><div class="controls"><input class="textinput textInput" id="id_subtitle" maxlength="50" name="subtitle" type="text" /> </div></div><div id="div_id_content" class="control-group"><label for="id_content" class="control-label ">
                Content
            </label><div class="controls"><textarea class="textarea" cols="40" id="id_content" name="content" rows="10"></textarea></div></div><div id="div_id_variables" class="control-group"><label for="id_variables" class="control-label ">
                Variables
            </label><div class="controls"><textarea class="textarea" cols="40" id="id_variables" name="variables" rows="10"></textarea></div></div></form>

            </div>


</main>

这是我关于堆栈溢出的第一个问题,所以请让我知道如何改进 future 的问题或我的研究方法。

谢谢, 内森

最佳答案

附加到settings.py

CRISPY_TEMPLATE_PACK = 'bootstrap3'

关于django-crispy-forms:form_class出现,但label_class和field_class没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26849485/

相关文章:

javascript - 如何使用 jQuery 获取复选框的值并将它们吐到不同的表单字段中

css - 使用 CSS 进行表单布局

html - 我的中心 div 是 100% 流畅的吗?

css - Bootstrap 3 -- 如何在同一行中使用不同的字体大小,同时对齐底部的所有文本

django - 在 django 1.6 之后运行所有测试

python - 在 Python/Django 中递归收集 child

python - Django Windows 身份验证

Django JSONField转储/加载

javascript - POST 请求 header 中的内容类型缺少 FormData 边界

css - 在 Bootstrap 4 中添加多个类的正确方法是什么?