Веб-интерфейс (перетаскиваемые элементы, запоминание состояния) похож на 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.

Другие вопросы по тегам