2017-06-05 119 views
0

如何做一个关系3 django模型?做一个关系3 django模型和添加过滤器

我希望能够做的MySQL查询,但通过我与Django的做,我想涉及3种型号,另外我想通过用户ID添加过滤器

SQL查询

SELECT * FROM hospetaje 
inner join usuario on (Usuario_idUsuario=idUsuario) 
inner join pago on (idHospetaje=Hospetaje_idHospetaje) 
where idUsuario = 5 

我的模型是

class Usuario(models.Model): 
    idusuario = models.AutoField(db_column='idUsuario', primary_key=True) 
    cc = models.CharField(unique=True, max_length=45) 
    nombre = models.CharField(max_length=15) 
    apellido = models.CharField(max_length=20) 
    fecha_nacimiento = models.DateField() 
    sexo = models.CharField(max_length=6) 
    e_mail = models.CharField(db_column='e-mail', max_length=30) 
    telefono = models.CharField(max_length=10) 
    usuario = models.CharField(max_length=30) 
    contrasena = models.CharField(max_length=10) 
tipousuario_idtipousuario = models.ForeignKey(Tipousuario, models.DO_NOTHING, db_column='TipoUsuario_idTipoUsuario') 

class Pago(models.Model): 
    idpago = models.AutoField(db_column='idPago', primary_key=True) 
    fechapago = models.DateTimeField(db_column='fechaPago') 
    fechapagada = models.DateField(db_column='fechaPagada') 
    valor = models.FloatField() 
    hospetaje_idhospetaje = models.ForeignKey(Hospetaje, models.DO_NOTHING, db_column='Hospetaje_idHospetaje') 

class Hospetaje(models.Model): 
    idhospetaje = models.AutoField(db_column='idHospetaje', primary_key=True) 
    usuario_idusuario = models.ForeignKey('Usuario', models.DO_NOTHING, db_column='Usuario_idUsuario') 
    habitacion_idhabitacion = models.ForeignKey(Habitacion, models.DO_NOTHING, db_column='Habitacion_idHabitacion') 
    fechainicio = models.DateField(db_column='fechaInicio') 
    fechafinal = models.DateField(db_column='fechaFinal', blank=True, null=True) 
+0

请更新模型上的格式,目前有点难以阅读。 –

+0

你可以[重新写下问题](https://stackoverflow.com/help/how-to-ask),以便它询问* one *的东西,就像有一个*正确答案一样。 – bignose

回答