2017-06-05 48 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

回答