Рендеринг Crispy Form + нет кнопки отправки - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь использовать хрустящий макет для моей формы. Я следовал инструкциям и инструкциям, но, поскольку я новичок в Django и python, я заблудился, и он не отображает мою форму, а также кнопку отправки.

У меня определена форма модели:

class nowyPhForm(forms.ModelForm):
    class Meta:
        model = Phandlowy
        fields = ('imie', 'nazwisko', 'email', 'telefon', 'firma', 'filia')

        def __init__(self, *args, **kwargs):
            super(nowyPhform, self).__init__(*args, **kwargs)
            self.helper = FormHelper()
            self.helper.form_method = 'post'
            self.helper.form_action = 'submit_survey'
            self.helper.add_input(Submit('submit', 'Submit'))
            self.helper.layout = Layout(
                Row(
                    Column('imie', css_class='form-group col-md-6 mb-0'),
                    Column('nawisko', css_class='form-group col-md-6 mb-0'),
                    css_class='form-row'
                ),
                Row(
                    Column('email', css_class='form-group col-md-6 mb-0'),
                    Column('telefon', css_class='form-group col-md-6 mb-0'),
                    css_class='form-row'
                ),
                Row(
                    Column('firma', css_class='form-group col-md-6 mb-0'),
                    Column('filia', css_class='form-group col-md-6 mb-0'),
                    css_class='form-row'
                ),
                Submit('submit', 'Sign in')
            )

и HTML

{% load crispy_forms_tags %}
{% block content %}

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

{% endblock %}

Буду признателен, если кто-то сможет обнаружить проблему.

1 Ответ

0 голосов
/ 24 марта 2020

Вы должны добавить кнопку отправки вручную. Хрустящие формы просто предоставляют интерфейс поля, даже без хрустящих форм вам нужно добавить кнопку вручную. Следующий фрагмент отобразит вашу форму.

views.py

from django.shortcuts import render, redirect
from .forms import nowyPhForm

def view(request):
    form = nowyPhForm()
    if request.method == 'POST':
        form = nowyPhForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('some_other_url')
    return render(request,'template.html',{'form':form})

шаблон. html

{% load crispy_forms_tags %}
{% block content %}
<div class="container">
    <form method="POST">
       {% form | crispy %}
       <button type="submit">Submit</button>
    </form>
</div>
{% endblock %}
...