Должен ли внешний ключ быть первичным ключом в 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')