Множественные родственные инородные тела

class Flow(models.Model):
    name = models.CharField(max_length=200)
    
    pre_requisite = models.ForeignKey('self', null=True, blank=True, on_delete=models.SET_NULL)
    pre_requisite_status = models.ForeignKey("FlowStepStatus",
                                             on_delete=models.SET_NULL,
                                             null=True,
                                             blank=True,
                                             related_name='pre_requisite_status')

Это дает мне одно предварительное условие и его статус (pre_requisite_status). Но я хочу иметь гибкость для нескольких предварительных требований и их соответствующих статусов. Как я могу модифицировать модель, чтобы иметь такую возможность?

Если я правильно понял ваши требования - вы хотите, чтобы Flow имел более одного pre_requisite и pre_requisite_status. В таком случае вам нужно ввести еще одну модель (другими словами таблицу базы данных), которая ссылается на модель Flow как внешний ключ.

class Flow(models.Model):
    name = models.CharField(max_length=200)


class PreRequisite(models.Model):
    flow = models.ForeignKey(Flow, on_delete=models.CASCADE, related_name='pre_requisites')
    pre_requisite = models.ForeignKey(Flow, null=True, on_delete=models.SET_NULL)
    pre_requisite_status = models.ForeignKey("FlowStepStatus",
                                             on_delete=models.SET_NULL,
                                             null=True,
                                             blank=True)

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