Django: Как создать форму модели A для каждого экземпляра модели B

Я пытаюсь создать приложение, в котором пользователь заполняет формы (модель B). Формы основаны на переменных (модель A), которые определяются администратором. Форма должна сохранять вводимые данные в модели B (т.е. значения ввода) и, соответственно, показывать имя/метку модели A (т.е. имя переменной) для каждого экземпляра A и соответствующих полей B (значения ввода).

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

Буду очень признателен за любую помощь!

Модель A (переменные):

class Variable(models.Model):
visit = models.ForeignKey(Visit, on_delete=models.CASCADE, default="")
var_id = models.CharField(max_length=20, default="")
var_label = models.CharField(max_length=20, default="")

NUM = 'NUM'
INT = 'INT'
CHAR = 'CHA'
DATE = 'DAT'
BOOL = 'BOO'

DATA_TYPES = [
    (NUM, 'Numeric'),
    (INT, 'Integer'),
    (CHAR, 'Character'),
    (DATE, 'Date'),
    (BOOL, 'Boolean'),
]
widget_type = models.CharField(
    max_length=3,
    choices=DATA_TYPES,
    default=CHAR,
)

max = models.FloatField(max_length=20, default=0)
min = models.FloatField(max_length=20, default=10)
pub_date = models.DateTimeField('date published', default=timezone.now)
description = models.CharField(max_length=200, default="")
def __str__(self):
    return self.var_id

Модель B (входные значения):

class InputValue(models.Model):
    submission = models.ForeignKey(Submission, on_delete=models.CASCADE, default="")
    variable = models.ForeignKey(Variable, on_delete=models.CASCADE, default="")
    value_char = models.CharField(max_length=128, default="NA")
    value_numeric = models.FloatField(default=0)
    value_choice = models.CharField(max_length=128, default="NA")
    def __str__(self):
        return self.variable.var_label
Вернуться на верх