Как создать динамическую форму со значениями в модели, используя form.py? - PullRequest
0 голосов
/ 10 апреля 2019

Я хотел бы создать динамическую форму с использованием forms.py, где вопросы и ответы поступают из значений в столбцах моделей.

У меня есть три модели, одна называется Листом, в которой содержится много вопросов из модели Вопросов (от многих ко многим). Модель Вопрос может содержать один или несколько ответов из модели Ответ (от многих к многим)

В моем views.py моя функция извлекает все значения из модели листа и отправляет значения в мой HTML-файл.

В моем html-файле есть код, который позволяет отображать все вопросы с ответами.

class Sheet(models.Model):
    form = models.ForeignKey(Form, on_delete=models.CASCADE)
    question = models.ManyToManyField(Question, blank=True)
    sheet_name = models.CharField(max_length=256)
    creation_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.sheet_name


class Question(models.Model):
    is_parent = models.ManyToManyField("self", blank=True)
    answer = models.ManyToManyField(Answer, blank=True)
    in_french = models.TextField(max_length=512)
    in_english = models.TextField(max_length=512)

    def __str__(self):
        return self.in_french


class Answer(models.Model):
    in_french = models.CharField(max_length=32)
    in_english = models.CharField(max_length=32)

    def __str__(self):
        return self.in_french
{% for a_sheet in all_sheets %}
    <b>Survey: {{ a_sheet.sheet_name}}</b>
        {% for q in a_sheet.question.all %}
            <label>Question: {{ q.in_english }}</label><br/>
            <label>Answers:</label>
            {% if q.answer.all %}
                <select> 
                    {% for a in q.answer.all %}  
                        <option value={{ a.id }}> {{ a.in_french }} </option> 
                    {% endfor %} 
                </select>
            {% else%}
             <input type="text" name="answer">
            {% endif %}
        {% endfor %}
{% endfor %}

Мой вопрос заключается в том, как перевести мой HTML-код, чтобы поместить его в мой файл forms.py. Помещение кода в функцию моего файла forms.py позволило бы мне установить условия и получить результаты моей формы, чтобы поместить их в другую модель. Эта проблема не может быть решена по умолчанию с помощью forms.ModelForm, который отображает столбцы модели в формах.

Большое спасибо за вашу помощь

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