На этот вопрос уже есть ответ здесь:
Чем отличаются модели .ForeignKey(Modelname, unique=True)и models.OneToOneFieldв Django?
.ForeignKey(Modelname, unique=True)
models.OneToOneField
Где следует использовать models.OneToOneFieldи models.ForeignKey(Modelname, unique=True)?
models.ForeignKey(Modelname, unique=True)