Должен ли внешний ключ быть первичным ключом в Django?

Можно ли использовать любой другой уникальный столбец в качестве внешнего ключа в модели django?

Да, можно. Колонка должна быть unique=True.

Чтобы сослаться на этот столбец, укажите атрибут to_fied на столбце-источнике. Проверьте ниже;

class Group (models.Model):
    name= models.CharField(max_length=250)
    otherid=models.IntegerField(unique=True)

class Member (models.Model):
    name=models.CharField(max_length=250)
    group=models.ForeignKey(Group,models.CASCADE,to_field='otherid')
Вернуться на верх