CreateView - проверить форму и поля по умолчанию

Я пытаюсь создать новый элемент, используя CreateView и автоматически сгенерированную форму.

class OrderSelected(CreateView):
    model = Wynajem
    template_name = "order_room.html"
    success_url = '/my_orders/'

Как добавить значение по умолчанию для нескольких полей Wynajem и проверить, в порядке ли другие поля, отправленные почтовым методом?


Есть еще одна проблема. Значением по умолчанию является аргумент в URL:

url(r'^order/(?P<room>\d+)/$', login_required(OrderSelected.as_view()), name='order')

Я хочу установить одно поле со стоимостью комнаты.

1 ответ

Решение

Значения по умолчанию:

Обеспечить get_initial метод, который возвращает поля сопоставления словаря в их значения по умолчанию.

class MyView(CreateView):
    # ...
    def get_initial(self):
        return { 'some_field': 'some_default_value' }

Проверьте поля в сообщении:

Это то, для чего предназначена структура форм (обработка валидации) - измените форму или создайте подкласс для нее и внесите необходимые изменения, прежде чем предоставлять ее вашему классу.

class MyForm(FormToSubclass):
   def clean_fieldname(self):
        fieldname_value = self.cleaned_data.get('fieldname')
        # check if field is valid.
Другие вопросы по тегам