Hay Tengo una pregunta sobre las relaciones.django ManyToMany a través de la ayuda
Quiero que los usuarios tengan amistades. Entonces un Usuario puede ser un amigo con otro Usuario. Asumo que necesitaré usar ManyToManyField, a través de una tabla de Amistad. Pero no puedo hacer que funcione. ¿Algunas ideas?
Aquí están mis modelos.
class User(models.Model):
username = models.CharField(max_length=999)
password = models.CharField(max_length=999)
created_on = models.DateField(auto_now = False, auto_now_add = True)
updated_on = models.DateField(auto_now = True, auto_now_add = False)
friends = models.ManyToManyField('self')
pendingFriends = models.ManyToManyField('self', through='PendingFriendship', symmetrical=False, related_name='friend_requested')
class PendingFriendship(models.Model):
user = models.ForeignKey('User', related_name='user')
requested_friend = models.ForeignKey('User', related_name='requested_friend')
created_on = models.DateField(auto_now = False, auto_now_add = True)
updated_on = models.DateField(auto_now = True, auto_now_add = False)
Gracias
He actualizado el ejemplo con su modificación. Sin embargo, todavía necesito la mesa extra para guardar los datos. – dotty
@dotty: Actualicé mi respuesta. –
hmm, he actualizado mi modelo, pasa la validación bien. He agregado un par de Usuarios. y creó un objeto PendingFriendship en el modelo del usuario A.Esto agrega la amistad bien, sin embargo, el objeto del usuario b no obtiene el otro lado de la amistad (porque el valor "simétrico" es falso). Sin embargo, quiero que la relación sea simétrica. ¿algunas ideas? – dotty