Я пытаюсь получить экземпляр внешнего ключа, хранящийся в модели CandidateSkill (в [5]), но хочу избежать использования цикла.
Я пытался values()
, он возвращает только фактическую candidate_id(int)
, сохраненную в Кандидат модель, а не экземпляр.
models.py
class Candidate(models.Model):
candidate_id = models.AutoField(primary_key = True)
name = models.CharField(max_length = 255, null = False)
class CandidateSkill(models.Model):
candidate_id = models.ForeignKey('hr.Candidate', on_delete = models.CASCADE)
skill = models.CharField(max_length = 255)
Джанго Шелл
In [1]: from hr.models import CandidateSkill as cds
In [2]: a = cds.objects.filter(skill__icontains = 'py')
In [3]: a
Out[3]: <QuerySet [<CandidateSkill: CandidateSkill object (1)>, <CandidateSkill: CandidateSkill object (2)>, <CandidateSkill: CandidateSkill object (3)>, <CandidateSkill: CandidateSkill object (4)>, <CandidateSkill: CandidateSkill object (10)>]>
In [4]: a[0]
Out[4]: <CandidateSkill: CandidateSkill object (1)>
In [5]: a[0].candidate_id
Out[5]: <Candidate: Clayton Cote>
Так что у меня есть способ получить только экземпляр внешнего ключа и избежать использования цикла.