Добавление шагов к записи модели в Django

#python #django #web-deployment

#python #django #веб-развертывание

Вопрос:

В настоящее время я изучаю Django и спрашивал себя, как я мог бы добавить дополнительные шаги к записи.

Давайте возьмем для примера приложение-рецепт: рецепт состоит из одного или нескольких шагов. Пользователь хочет ввести рецепт и получает три поля формы: название рецепта, ингредиенты и возможность добавить много шагов.

Итак, как я могу реализовать функциональность для добавления списка ингредиентов неизвестной длины и добавления неизвестного количества шагов?

Я знаю только, как предоставить функциональность отдельным записям формы.

Спасибо за вашу тяжелую работу здесь.

Ответ №1:

Вы можете создать модель для своего рецепта под названием RecipeModel, и вы можете создать вторую модель под названием StepsModel. В StepsModel должны быть модели.Поле ForeignKey. Таким образом, рецепт может иметь несколько шагов, и каждый шаг связан с рецептом. вы можете сделать то же самое с ингредиентами и шагами. это называется отношением «многие к одному», вы можете прочитать об этом в документах. https://docs.djangoproject.com/en/3.1/topics/db/examples/many_to_one /

и вы можете использовать JavaScript для изменения ваших форм на стороне клиента.

Комментарии:

1. Ну ладно. Тогда это невозможно сделать с одной моделью, и мне всегда нужна та система, которую вы описали, если мне нужно больше, чем одна вещь, связанная с другой вещью?

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