Фильтр набора запросов DJango с внешним ключом другой модели - PullRequest
0 голосов
/ 01 июля 2018

Я новичок в 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 модели, с идентификатором студента и идентификатором работы в качестве иностранного ключ. (У меня есть модель пользователя с 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

Как я могу сделать подобное, используя ORM от DJango?

1 Ответ

0 голосов
/ 01 июля 2018

Вы можете запросить заявки студентов на объявления о приеме на работу рекрутера следующим образом:

# 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)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...