Фильтр поля модели django на основе другого поля

У меня есть модель Django :

class System(models.Model):
    system = models.CharField(max_length=100,verbose_name = "system ", db_column = "SYSTEM")
    product = models.ForeignKey(Product,verbose_name="product",db_column="PRODUCT_ID")
    program = models.ForeignKey(Program, verbose_name = "program", db_column = "PROGRAM_ID")


def __str__(self):
    return self.system

class Meta:
    db_table = 'user_system_data'
    verbose_name = "System"
    default_permissions = ('add', 'change', 'delete', 'view')

И 3 таблицы :

Таблица продуктов :

id  PRODUCT
1   P1
2   P2
3   P3

Таблица программ :

id PROGRAM PRODUCT_ID
1  Pr1     1
2  Pr1     2
3  Pr3     3

Системная таблица :

id  SYSTEM PROGRAM_ID
1   S1     1
2   S2     3

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

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

Есть ли способ отфильтровать поле PROGRAM на основе выбора ПРОДУКТА? Или любое решение, которое я могу использовать, чтобы в таблице хранилась правильная информация?

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