15

Я еще новичок в Django и Bootstrap поэтому я опробовать Джанго-самозагрузки пакет: https://github.com/dyve/django-bootstrap3Ошибка шаблона загрузки образца Джанго-bootstrap3

Пример шаблона, который включен на этой странице (с изменением адрес в форме действия):

{% 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.

+0

попробовать {% bootstrap_form | форма%} – Jannis

+2

я случайно наткнулся в ту же ошибку. Моя ошибка заключалась в том, что я не наследовал «FormView» в классе, который указывал на шаблон, содержащий форму. –

ответ

0

Вам не нужны теги bootstrap_button. Я пытался найти их, но они не были объявлены в источнике ...

+1

Эх, я спросил это некоторое время назад, в настоящее время я просто использую bootstrap самостоятельно без пакета django, так как он дает мне больший контроль. – dl8

4

{% bootstrap_form form %} шаблон тега обеспечивается Джанго-bootstrap3, что ожидать экземпляра формы Джанго, поэтому параметр «form» является переменной контекста упомянутый в displaying-a-form-using-a-template из django docs.

Создайте форму, как описано в этой странице, а затем заменить HTML код, который они используют в шаблоне:

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

кодом образца в вашем вопросе.

Теперь Parameter "form" contains a valid Django Form

Надеется, что это помогает

0

Положите {% extends 'bootstrap3/bootstrap3.html' %} в начале вашего сниппета. Предполагается, что это ваш файл, bootstrap3.html находится в этом заполнитель.

2

Вам просто нужно предоставить серверную часть объекта, которая должна иметь название «форма».

В вашем 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) 

Теперь вы не должны иметь каких-либо ошибок.

Надеется, что это помогает

0

Ошибки довольно проста, убедитесь, что вы передадите действительную форму Джанго. Я пропустил form.as_p() вместо form на мой взгляд и получил эту ошибку. Мне потребовалось некоторое время, чтобы заметить. Может быть, это все равно поможет кому-то.

-1

для Джанго 1.8 использования {{ form }} вместо {{ form.as_p }} как в Джанго 1.6, для этого незначительных изменений может привести к ошибке

см Джанго 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> 
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>

Смежные вопросы