15

wciąż jestem nowy w Django i Bootstrap więc staram się Django-bootstrap pakiet: https://github.com/dyve/django-bootstrap3Error loading próbka django-bootstrap3 szablon

The przykładowy szablon, który znajduje się na tej stronie (ze zmianą url w postaci akcji):

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

daje mi błąd:

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

na tej linii

{% bootstrap_form form %} 

Nie jestem do końca pewien, na czym polega problem, ponieważ jest to szablon przykładowy, który jest zawarty w tym pliku README.

+0

try {% bootstrap_form | Formularz%} – Jannis

+2

I zdarzyło się potknąć do tego samego błędu. Mój błąd polegał na tym, że nie dziedziczyłem "FormView" w klasie, która wskazywała szablon zawierający formularz. –

Odpowiedz

0

Tak naprawdę nie potrzebujesz tagów bootstrap_button. Próbowałem również je znaleźć, ale nie są one zadeklarowane w źródle ...

+1

Eh Zapytałem o to chwilę temu, obecnie używam tylko bootstrapu bez pakietu django, ponieważ daje mi to większą kontrolę. – dl8

4

{% bootstrap_form form %} to tag szablonu dostarczony przez django-bootstrap3, który oczekuje wystąpienia formularza django, więc parametr "form" jest zmienną kontekstową wymienione w displaying-a-form-using-a-template z dokumentacji django.

Utwórz formularz jak wyjaśniono w tej stronie, a następnie zastąpić kod HTML oni wykorzystać w szablonie:

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

przez przykładowy kod w swoim pytaniu.

Teraz Parameter "form" contains a valid Django Form

Nadzieja to pomaga

0

Put {% extends 'bootstrap3/bootstrap3.html' %} na początku fragmencie. To powinien być twój plik, bootstrap3.html jest na tym miejscu.

2

Wystarczy podać obiekt od strony serwera, który musi mieć nazwę kontekstową "formularz".

W swojej views.py, to coś takiego

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) 

Teraz nie powinno mieć żadnego błędu.

Nadzieja pomaga

0

Błąd jest dość proste, upewnij się, że przechodzą prawidłową formę Django. W moim widoku mijałem form.as_p() zamiast form i otrzymałem ten błąd. Zajęło mi to trochę czasu. Być może nadal będzie pomagać komuś.

-1

dla Django 1.8 użytku {{ form }} zamiast {{ form.as_p }} jak w Django 1.6, w tym drobne zmiany mogą spowodować błąd

proszę zobaczyć Django 1.8 oficjalna dokumentacja: 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

spróbować tej

{# 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>