
Hector F
Pregunta¿Cuál es la diferencia entre OneToOneFIeld y ForeignKey?

Gonzalo García
ForeignKey es de relación uno a muchos, mientras que OneToOneField es de relación uno a uno. También está ManyToMany, que como seguro adivinaste es muchos a muchos.
Siguiendo el ejemplo de Jandro, la relación muchos a muchos se podría ver en las comidas del menú de un restaurante y sus ingredientes (un ingrediente puede estar en varias comidas, y una comida puede tener varios ingredientes).

Hector F
Sí. ¡Gracias!

Carlos Alejandro Hernández Mejía
Una relación del tipo OneToOneField, representa una relación uno a uno, y una ForeignKey representa una relación uno a muchos.
Por ejemplo, vos podés tener 3 modelos, un modelo Restaurante, uno Lugar y un modelo Camarero. La relación uno a uno se leería así: Un restaurante está ubicado en un lugar, la relación OneToOneField estaría ubicada en el modelos Restaurante, porque un restaurante no puede estar en muchos lugares (a menos que sea una franquicia, pero finjamos que hablamos de un restaurante pequeño). La relación uno a muchos, estaría representada por el hecho que en un Restaurante trabajan muchos camareros, aquí te podría surgir la duda de dónde poner la referencia (ForeignKey), en este caso, la llave foránea tendría que ir en el modelo que posee el "muchos", por lo cual, el modelo Camarero tendría la referencia al Restaurante donde este trabaja.
Espero haberte ayudado.