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.