Синтаксис для чего? Вы не объяснили, что вы пытаетесь сделать с этим. Код только показывает нам, что вы пытались, и, как вы знаете, это не сработало. Что это должно было сделать? Похоже, вы хотите, чтобы между типами Feature, Protein и Substrate существовали отношения типа «многие ко многим». (У вас также есть эти модели? Это не ясно.)
Если это так, вам нужно будет создать отдельный внешний ключ для каждого отношения, позволить django создать свой собственный первичный ключ, а затем определить ограничение уникальное вместе для ваших внешних ключей. В вашей таблице будет дополнительный столбец для представления первичного ключа, но вам просто нужно принять работу с django, поскольку он пока не допускает первичных ключей из нескольких столбцов.
Редактировать: После вашего комментария, похоже, что вы ищете общий внешний ключ . Это лучший способ использовать одно отношение для связи с несколькими другими таблицами.