Это действительно поставило меня в тупик. Я могу писать формы OK в django, но хочу использовать хрустящие формы bootstrap3. Я могу получить формы для отображения, используя этот код формы:
класс NewGuestForm (forms.ModelForm):
def __init__(self, *args, **kwargs):
super(NewGuestForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.form_id = 'id-newGuestForm'
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-lg-2'
self.helper.field_class = 'col-lg-6'
self.helper.form_method = 'post'
self.helper.form_action = 'guest-list'
self.helper.layout = Layout(
Fieldset (
'New Guest',
'first_name',
'last_name',
'num_child',
'landline',
'mobile',
'email'
),
FormActions(
Submit('save', 'Save changes',css_class='btn-primary'),
Button('cancel', 'Cancel')
)
)
class Meta:
model = Guest
класс BookingForm (forms.Form): класс Meta: модель = бронирование
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_method = 'POST'
self.helper.form_id = 'add-booking'
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-lg-2'
self.helper.field_class = 'col-lg-6'
self.helper.layout = Layout(
Fieldset(
'',
'guest',
'guest_status',
'start_date',
'end_date',
'dep_recd',
'bkd_child',
'bkd_adult',
'bal_recd',
'sec_recd',
'keys_sent',
'sec_retn',
'notes'
),
FormActions(
Submit('submit', "Save changes"),
Submit('cancel', "Cancel"),
)
)
super(BookingForm, self).__init__(*args, **kwargs)
Это отображает форму в порядке, но когда я нажимаю «отправить», браузер становится белым. Возврат (form_action) правильно отображается в адресной строке, но не загружается. Данные не записываются в базу данных. Форма отображается только с нужными мне полями.
Моя точка зрения такова:
class NewGuestView(CreateView):
model = Guest
template_name = 'new_guest.html'
form_class = NewGuestForm
Если я изменю «form_class» на «form», форма будет отображаться со всеми полями и игнорировать инструкции столбца начальной загрузки. Также не отображаются кнопки «отправить» и «отменить».
Должно быть, я делаю что-то не так, но не могу понять, что именно. Любые предложения с благодарностью принимаются.