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 для вопросов и полей данных... но опять же, я немного не уверен, как обрабатывать потенциальные множественные отправки из шаблона в представление.
Есть ли у кого-нибудь идеи или помощь в выборе оптимального подхода?