Фильтр поля модели 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 на основе выбора ПРОДУКТА? Или любое решение, которое я могу использовать, чтобы в таблице хранилась правильная информация?