Django Множественные формы из связанных моделей

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

У меня есть следующие модели, первая из которых хранит данные актива:

class Model_AssetData(models.Model):
UU_Project_Number = models.ForeignKey(Model_Project, null=True, on_delete=models.CASCADE)
Site_Code = models.CharField(blank=True, null=True,max_length=5)
Facility = models.ForeignKey(Model_Facility, null=True, on_delete=models.CASCADE)
Facility_Number = models.IntegerField(blank= False, null= True,)
Process = models.ForeignKey(Model_Process, null=True, on_delete=models.CASCADE)
Process_Number = models.IntegerField(blank= False, null= True)
Arrangement = models.ForeignKey(Model_Arrangement, null=True, on_delete=models.CASCADE )
Arrangement_Number = models.IntegerField(blank= False, null= True)
Asset_Group = models.ForeignKey(Model_AssetLocation, null=True, on_delete=models.CASCADE )
Asset_Group_Number = models.IntegerField(blank= False, null= True)
Asset_Number = models.CharField(blank=False, null=False,max_length=50)
Equipment_Group_Identifiier = models.ForeignKey(Model_EGI, null = True, on_delete=models.CASCADE)
Engineering_Design_Identifier = models.ForeignKey(Model_EDI, null = True, on_delete=models.CASCADE)
ITR = models.ForeignKey(Model_ITR, null = True, on_delete=models.SET_NULL)
def __str__(self):
    return self.Asset_Number

def save(self, *args, **kwargs):
    # Only generate key on creating if it was not provided
    if not self.id:
        
    # Use f-string to concatenate the asset code into the Database
      self.Asset_Number = f'{self.UU_Project_Number}-{self.Site_Code}-{self.Facility} 
      {self.Facility_Number}-{self.Process}{self.Process_Number}-{self.Arrangement} 
      {self.Arrangement_Number}-{self.Asset_Group}{self.Asset_Group_Number}'
    super().save(*args, **kwargs)

Затем я пытаюсь собрать ответы на вопросы, чтобы убедиться, что определенные вещи были проверены при установке актива: Эта модель является ссылкой на то, какие вопросы необходимо задать для конкретного актива:

class Model_ITR(models.Model):
ITR_Reference = models.CharField( blank=True, null=True,max_length=50)
ITR_Description = models.CharField( blank=True, null=True,max_length=50)

def __str__(self):
    return self.ITR_Reference

Затем следующие модели хранят вопросы, связывают вопросы с ИТР и затем хранят данные соответственно:

class Model_ITR_Questions(models.Model):
ITR_Question = models.CharField( blank=True, null=True,max_length=50)

def __str__(self):
    return self.ITR_Question

class Model_ITR_Bridge(models.Model):
ITR = models.ForeignKey(Model_ITR, null=True, on_delete=models.SET_NULL)
Question = models.ForeignKey(Model_ITR_Questions, null=True, on_delete=models.SET_NULL)

def __str__(self):
    return self.ITR

class Model_ITR_Data(models.Model):
Asset_Number = models.ForeignKey(Model_AssetData, null=True, on_delete=models.SET_NULL)
Question = models.ForeignKey(Model_ITR_Bridge, null=True, on_delete=models.SET_NULL)
Data = models.CharField( blank=True, null=True,max_length=500)

def __str__(self):
    return self.Data

По сути, мне нужно отобразить в шаблоне список вопросов и форму для ввода ответа (скорее всего, в виде поля символов) в модель.

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

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

Есть ли у кого-нибудь идеи или помощь в выборе оптимального подхода?

Вернуться на верх