Как отправить несколько хрустящих форм в Django с помощью одной кнопки отправки? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть две отдельные формы, которые я пытаюсь сделать в одном шаблоне. Однако, когда я пытаюсь отправить форму, форма не отправляется. Есть ли какой-нибудь возможный способ сделать это? Это работает нормально, когда я не использую хрустящие формы

forms.py

class BasicInfoForm(ModelForm):
    class Meta:
        model = BasicInfo
        fields = '__all__'

    helper = FormHelper()
    helper.form_class = 'form-group'
    helper.layout = Layout(
                        Row(
                            Column('name', css_class='form-group col-sm-4 col-md-4'),
                            ),
                        Row(
                            Column('birthMonth',css_class='form-group col-sm-4 col-md-4'),
                            ),
                        Row(
                            Column('birthYear', css_class='form-group col-sm-4 col-md-4'),
                            ),
                        )

class IncomeDetailForm(ModelForm):
    class Meta:
        model = IncomeDetail
        fields = '__all__'
        exclude = ['user']

    helper = FormHelper()
    helper.form_class = 'form-group'
    helper.layout = Layout(
                        Row(
                            Column('gross', css_class='form-group col-sm-4 col-md-4'),
                            Column('monthlyExpense',css_class='form-group col-sm-4 col-md-4'),
                            Column('hasSavingsInvestment', css_class='form-group col-sm-4 col-md-4'),
                            ))

Views.py

def getIndexDetails(request):
        if request.method == 'POST':
        print("inside post method")
        basicinfoform = BasicInfoForm(request.POST)
        if basicinfoform.is_valid():
            basicinfoform.save()
            incomedetailform= IncomeDetailForm(request.POST)
        if incomedetailform.is_valid():
            incomedetailform.save()



<form action="." method="POST">
        {% csrf_token %}
        {{ crispy basicinfoform }}
        {% crispy incomedetailform %}
        <input type="submit" class="btn btn-info" value="Submit Button">                 
      </form>

1 Ответ

0 голосов
/ 04 июля 2019

Если вы проверите / изучите свой HTML-код в браузере, вы увидите два тега form, вложенные во внешний тег form (добавленный вами).

Вам следует избегатьэта ситуация добавляется

helper.form_tag = False

к вспомогательным объектам под каждой формой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...