Gusan
Gusan

Reputation: 421

how to make left join in django?

this is my first model

class DipPegawai(models.Model):
    PegID = models.AutoField(primary_key=True)
    PegNamaLengkap = models.CharField(max_length=100, blank=True, null=True)
    PegUnitKerja = models.IntegerField(null=True,blank=True) 

and this is my second model

class DipHonorKegiatanPeg(models.Model):
    KegID = models.AutoField(primary_key=True)
    PegID = models.ForeignKey(DipPegawai, blank=True,null=True)
    KegNama = models.Charfield(max_length=100,null=True,blank=True)

i want to make left join with this model, something like this in mysql query

SELECT PegNamaLengkap, KegNama_id
FROM karyawan_dippegawai AS k LEFT JOIN honorkegiatanpeg_diphonorkegiatanpeg AS h ON k.PegID = h.PegID_id
WHERE PegUnitKerja = 3
GROUP BY k.PegID

how to make left join with django orm same like mysql query above?

Upvotes: 0

Views: 114

Answers (2)

Mauricio Cortazar
Mauricio Cortazar

Reputation: 4213

Should be something like:

DipPegawai.objects.filter(PegUnitKerja=3).values_list.('pegnamalengkap', 'diphonorkegiatanpeg_kegnama')

Tell me if that worked for you. You can print your raw query using print(your_var_here.query). Remember put your query into a var

Upvotes: 1

Roopak A Nelliat
Roopak A Nelliat

Reputation: 2541

DipHonorKegiatanPeg.objects.filter(PegID__PegUnitKerja=3).values('PegID__PegNamaLengkap', 'KegNama_id')

Upvotes: 0

Related Questions