Веб-интерфейс (перетаскиваемые элементы, запоминание состояния) похож на Wufoo
У меня вопрос очень специфический. Я хотел иметь приложение, где я мог бы создавать формы, как на Wufoo, с простым в использовании интерфейсом. Что означает, перетаскиваемые элементы.
Моя проблема в том, что я не могу понять, как будет сохраняться состояние в базе данных, когда использование изменит порядковый номер элементов формы. Я могу сделать интерфейсную часть, и для этого есть библиотеки, но как сохранить конкретный экземпляр формы в бэкэнде, чтобы при следующем входе в систему порядок был таким же.
Я хотел бы использовать Django для этого приложения. Итак, основные классы, о которых я могу думать:
class Form(models.Model):
"""...objects..."""
class TextField(models.Model):
"""...objects..."""
#FK to Form()
class TitleArea(models.Model):
"""...objects..."""
#FK to Form()
Я также могу иметь конкретные идентификаторы элементов в форме HTML:
<input id="Field2" name="Field2" type="text"/>
Как они (Wufoo) делают это? Моя модель неверна? Я знаю, что это наивно. Благодарю.
3 ответа
Скрытые поля ввода для выигрыша.
предположим:
$("#submitForm").click(function() {
// Check out the state of the union and change the hidden fields accordingly..
// Something like:
for (var i = 0; i < $(".orderedElements").length; i++) {
$("#ordered-" + ((Number) i + 1)).attr('value', $(".orderedElements").eq(i).attr('id'));
}
});
Если вы поймаете мой занос.
Ты можешь использовать ModelForm
создавать формы с использованием экземпляра модели. Просто сохраните модель после того, как пользователь завершит редактирование, а затем, когда вы создадите для него форму, снова используйте модель в качестве экземпляра для вашего ModelForm
(или formset):
form = YourForm(instance=model_instance)
Что ж, хорошее место для начала - подумать над вариантом использования. Если я пользователь, что мне понадобится для создания формы? Текстовые поля, конечно, но что еще? У формы будет заголовок? URL? Срок годности?
Когда у вас есть такая информация, вы можете начать строить свои модели в Django.