Как преобразовать вручную созданную форму в формы django? - PullRequest
0 голосов
/ 10 мая 2019

В настоящее время я работаю над приложением для опроса. Приложение работает хорошо, но я сделал это без использования форм django. Теперь я хочу иметь возможность использовать формы Django по соображениям безопасности. Однако я застрял, потому что приложение имеет определенные особенности, которые затрудняют переход. Хотя я прочитал документацию и много постов в stackoverflow, я не нашел способа сделать это.

Вопросы:

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

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

2. Все вопросы загружаются на одну и ту же страницу, и в конце они представляют собой кнопку отправки, поэтому можно сказать, что это одна форма.

3. Важно, чтобы имя ввода было идентификатором вопроса, потому что я должен знать вопрос и ответ на этот вопрос. (Я думаю, что это одна из основных проблем, потому что имя входа должно быть именем поля в форме, созданной в forms.py, но для каждого вопроса изменяется имя атрибута ввода)

1 Ответ

1 голос
/ 11 мая 2019

Вы можете использовать общие виды редактирования, для получения дополнительной информации; https://docs.djangoproject.com/en/2.2/ref/class-based-views/generic-editing/

Используя CreateView, вы можете автоматически создавать ModelForm

#views.py

from forms import AnswerCreateForm    

class AnswerCreateView(CreateView):
    model = Answer
    form_class = AnswerCreateForm

Затем вы можете обработать свою проверку в forms.py

#forms.py

class AnswerCreateForm(ModelForm):

    class Meta:
        model = Answer
        fields = []
        etc.

Визуализация вашей формы вручную может быть выполнена с помощью начальной загрузки, читайте здесь, это требует совсем немного кода. Сначала я протестировал бы форму, используя {{form}}, а затем вручную отобразил бы эту форму.

https://docs.djangoproject.com/en/2.2/topics/forms/#rendering-fields-manually

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...