Я создал подробную форму в Django, имеющую некоторые обязательные поля. Я хочу сохранить страницу как вариант проекта без исключения, если обязательные поля не установлены в это время. Как мне это сделать?Как сохранить страницу как черновик
ответ
Первый набор required = False для полей, которые не нужно устанавливать, если вы сохраняете как черновик. Затем в свою форму добавьте поле типа save_as_draft, которое является логическим. Теперь вам нужен метод для проверки этих полей в зависимости от состояния поля save_as_draft (независимо от того, выбрал ли пользователь это поле или нет). Вы можете использовать такой метод:
def is_provided(self, field):
value = self.cleaned_data.get(field, None)
if value == None or value == '':
self._errors[field] = ErrorList([u'This field is required.'])
if field in self.cleaned_data:
del self.cleaned_data[field]
Добавить этот метод в форму и использовать его в чистом методе формы, чтобы проверить свои поля. Это будет выглядеть следующим образом:
def clean(self):
draft = self.cleaned_data.get('save_as_draft', False)
if not draft:
# User doesn't save a draft so we need to check if required fields are provided
req_fields = ['field1', 'field2', 'field3']
for f in req_field:
self.is_provided(f)
return self.cleaned_data
Если пользователь предпочитает кнопку save_as_draft вместо флажка, то вы должны изменить свой вид и передать некоторые параметры в конструктор вашей формы в зависимости от щелкнул ли пользователь кнопку save_as_draft или просто кнопку сохранения. В конструкторе формы сохраните это состояние aa self.save_as_draft и используйте его в методе Form.clean, чтобы проверить, сохраняется ли черновик или нет.
Привет, Лукаш
- 1. Сохранить как черновик, затем обновить черновик?
- 2. Сохранить как черновик неотправленных писем
- 3. Как сохранить электронную почту как черновик в Outlook 2003 программно?
- 4. Сохранить как черновик двух полей с одним именем
- 5. Как сохранить черновик-js editorState data to Meteor?
- 6. Как сохранить изменения в фазе «черновик» на hg push?
- 7. Сохранить адрес электронной почты как черновик в php
- 8. Как сохранить веб-страницу
- 9. Сохранить страницу как XML
- 10. Как сохранить офлайн страницу
- 11. Как создать черновик электронной почты?
- 12. Как создать «черновик» в наноке?
- 13. Как сохранить содержимое формы с помощью JavaScript при нажатии кнопки «Сохранить как черновик»?
- 14. Как заставить HtmlUnit сохранить страницу?
- 15. Как сохранить полную веб-страницу
- 16. История Api: Как сохранить страницу
- 17. Как сохранить страницу с $ .ajax()
- 18. Как сохранить веб-страницу/изображение
- 19. Сохранить HTML-страницу как pdf
- 20. Как сохранить мигающую страницу мастера?
- 21. Как сохранить веб-страницу, программно?
- 22. SharePoint Черновик списка Элемент
- 23. Как сохранить веб-страницу как html-код?
- 24. Как сохранить текущую страницу aspx как html
- 25. Как сохранить страницу firefox как изображение
- 26. Как сохранить PHP HTML страницу как PDF
- 27. Как сохранить веб-страницу в Qt WebKit как «сохранить как полную веб-страницу»
- 28. EWS Managed API - Сохранить черновик с встроенными изображениями
- 29. Отметить все товары как черновик Woocommerce
- 30. Как удалить ссылку на черновик страниц?
Используя этот подход, вы должны сделать все модели поля обнуляемым, что не очень хорошо –