При использовании средства визуализации HTML-форм в DRF, может ли кто-нибудь придумать хороший способ автоматически сгенерировать некоторое указание на «обязательное» поле в DRF всеми правдами и неправдами? Я имею в виду, что перед отправкой формы какое-то указание на поле, которое требуется - Browsable API покажет прямо в форме, что это за ошибка, но только после отправки.
Использую ли я метод, как показано здесь, для просматриваемого API с HTML-формами на уровне поля (вместо простой формы / JSON):
django-rest-framework - автогенерация формы в доступном для просмотра API?
Или я использую TemplateHTMLRenderer с вызовом render_form, как описано здесь:
http://www.django-rest-framework.org/topics/html-and-forms/#rendering-forms
Я не вижу простого способа сделать так, чтобы мои обязательные поля отображались в соответствии с требованиями. Так скажем, у нас есть, как
#models.py
class Foobar(model.Models):
foo = models.CharField(max_length=100, blank=True, default='')
bar = models.CharField(max_length=100, blank=False)
Лучшее, что я могу придумать, это создать свой собственный шаблон/фрагмент для каждого типа поля "required-text-field.html", "required-checkbox.html" и т. д. и использовать объявление стиля в сериализаторе, как показано здесь:
http://www.django-rest-framework.org/topics/html-and-forms/#field-styles
Это при условии, что я понимаю это, еще не играл с этим, чтобы увидеть.
Но мне бы хотелось увидеть способ автоматического создания поля с обязательным флагом или без него (даже просто со звездочкой или с применением класса CSS) на основе определения модели.
Rambling: Цель здесь состояла в том, чтобы избежать написания моих собственных форм, чтобы DRF генерировал форму для меня в пользовательских представлениях. В отличие от написания собственных форм с использованием AJAX, я решил, что шаблонов, render_form и некоторых проверок формата будет достаточно. Но теперь я думаю, что DRF создан для серверной части и разработки, а не для интерфейса, и, может быть, мне следует запланировать написать свои собственные формы, если они будут видны конечному пользователю? Также я мог бы иметь файлы CSS и выбирать на основе имени, вызывая render_form, а затем применяя ручные стили, было бы меньше работы, чем HTML + CSS. Должен ли я просматривать формы Django (просто Django, а не DRF) и повторно использовать сериализатор для проверки?...