我是DJango ORM的初学者,我想按以下方式进行查询集
这是我制作的模型:
class Job(models.Model):
title = models.CharField(max_length=255)
description = models.CharField(max_length=255)
tags = models.CharField(max_length=255, choices=job_type)
recruter_id = models.ForeignKey(User)
def __str__(self):
return self.title
objects = JobManager()
class StudentApplication(models.Model):
job_fk = models.ForeignKey(Job)
student_fk = models.ForeignKey(User)
title = models.CharField(max_length = 255)
def __str__(self):
return self.title
在此招聘人员中,可以列出职位发布,数据将以Job
模式提供,学生可以申请该职位,数据将以StudentApplication
模式提供,并带有学生ID和职位ID作为外键。(我有一个用户模型,其中学生为user_type=1
,招聘者为user_type=2
)
现在,我要进行查询,以向招聘人员显示数据,即哪个学生申请了他的职位。
在SQL中,查询将为:
select * from StudentApplication as SA
left join Job as j on j.id = sa.job_fk
where j.recruiter_id = logged_in_user
如何使用DJango的ORM做类似的事情?
答案 0 :(得分:0)
您可以按照以下方式查询招聘人员的职位申请中的学生申请:
# Retrieve a recruiter from `User` data model
$ recruiter = User.objects.get(email=<recuiter-email>)
# Now, Query student applications to our recruiter's job postings
$ student_applications = StudentApplication.objects.filter(job_fk__recruter_id=recruiter)
希望有帮助。