16

我还是 Django 和 Bootstrap 的新手,所以我正在尝试 django-bootstrap 包:https ://github.com/dyve/django-bootstrap3

该页面中包含的示例模板(在表单操作中更改了 url):

{% load bootstrap3 %}

{# Load CSS and JavaScript #}

{% bootstrap_css %}
{% bootstrap_javascript %}

{# Display a form #}

<form action="/search/" method="post" class="form">
        {% csrf_token %}
        {% bootstrap_form form %}
        {% bootstrap_form_buttons %}
                <button type="submit" class="btn btn-primary">
                        {% bootstrap_icon "star" %} Submit
                </button>
        {% end_bootstrap_form_buttons %}
</form>

给我错误:

BootstrapError at /
Parameter "form" should contain a valid Django Form.

在这条线上

{% bootstrap_form form %}

我不确定问题出在哪里,因为这是该 README 中包含的示例模板。

4

7 回答 7

4

{% bootstrap_form form %}是 django-bootstrap3 提供的一个模板标签,它需要一个 django 表单实例,所以“ ”参数是django 文档中的 display -a-form-using-a-templateform中提到的上下文变量 。

按照该页面中的说明创建表单,然后替换他们在模板中使用的 html 代码:

<form action="/contact/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>

通过您问题中的示例代码。

现在Parameter "form" contains a valid Django Form

希望这可以帮助

于 2014-01-31T10:53:19.600 回答
3

您只需要提供一个对象表单服务器端,它必须有一个上下文名称“form”。

在你的views.py中,包括这样的东西

from django.shortcuts import render

def index(request):
    from django import forms
    class NameForm(forms.Form):
        your_name = forms.CharField(label='Your name', max_length=100)

    template = "your_template.html"
    context = { "form" : NameForm() }
    return render( request, template, context )

现在你不应该有任何错误。

希望能帮助到你

于 2015-02-01T20:45:17.597 回答
1

尝试这个

{# Load the tag library #}
{% load bootstrap3 %}

{# Load CSS and JavaScript #}
{% bootstrap_css %}
{% bootstrap_javascript %}

{# Display django.contrib.messages as Bootstrap alerts #}
{% bootstrap_messages %}

{# Display a form #}
<form action="/url/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" class="btn btn-primary" value="Submit" />
</form>

于 2016-07-21T13:42:29.527 回答
0

你真的不需要 bootstrap_button 标签。我也试图找到它们,但它们没有在源代码中声明......

于 2013-10-15T16:28:58.797 回答
0

错误非常简单,请确保您传递了有效的 django 表单。我正在通过form.as_p()而不是form在我看来,并得到了这个错误。我花了一段时间才注意到。也许它仍然会帮助某人。

于 2015-02-02T20:41:36.103 回答
0

放在{% extends 'bootstrap3/bootstrap3.html' %}代码段的开头。它应该是你的文件,bootstrap3.html 在这个占位符处。

于 2014-10-05T16:02:32.873 回答
-1

对于 django 1.8 使用{{ form }}而不是{{ form.as_p }}在 django 1.6 中,因为这个微小的变化可能会导致错误

请参阅 django 1.8 官方文档: https ://docs.djangoproject.com/en/1.8/topics/forms/#the-template

{% load bootstrap3 %}
{# Display a form #}

<form action="/submit/" method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="Submit" />
</form>
于 2015-05-05T01:21:56.653 回答