Python Django与多个模型相关
嗨,我是Django的新手,不知道如何获得多个模型的相关对象 我的代码:Python Django与多个模型相关,python,django,filtering,models,django-select-related,Python,Django,Filtering,Models,Django Select Related,嗨,我是Django的新手,不知道如何获得多个模型的相关对象 我的代码: #models.py class Candidate(models.Model): user = models.OneToOneField(User, primary_key=True) birth = models.CharField(max_length=50) ... class CandidatePhotos(models.Model): user = models.Foreign
#models.py
class Candidate(models.Model):
user = models.OneToOneField(User, primary_key=True)
birth = models.CharField(max_length=50)
...
class CandidatePhotos(models.Model):
user = models.ForeignKey(User)
photo = models.ImageField(upload_to='usergallery/%Y/%m/%d')
class Job(models.Model):
candidate = models.ManyToManyField('Candidate', through='CandidateToJob')
title = models.CharField(max_length=500)
...
class CandidateToJob(models.Model):
job = models.ForeignKey(Job, related_name='applied_to')
candidate = models.ForeignKey(Candidate, related_name='from_user')
STATUS_CHOICES = (
('1', 'Not approved'),
('2', 'Approved'),
('3', 'Hired')
)
status = models.CharField(max_length=2, choices=STATUS_CHOICES)
在我看来
#views.py
class CandidateDetails(generic.DetailView):
model = Candidate
template_name = 'dashboard/candidate.html'
def get_context_data(self, **kwargs):
context = super(CandidateDetails, self).get_context_data(**kwargs)
context['cand_photos'] = CandidatePhotos.objects.all()
return context
在模板中,我有
<h2>{{ candidate.user.first_name }} {{ candidate.user.last_name }}</h2>
{% for candidatephotos in cand_photos %}
<img alt="" src="{{ candidatephotos.photo.url }}" >
{% endfor %}
{{candidate.user.first_name}{{{candidate.user.last_name}
{cand_照片中候选照片的百分比%}
{%endfor%}
这是我的url dashboard/candidate/pk/
发生的事情是在模板中加载所有用户的照片,而不是只加载我想要的特定用户。
我曾尝试使用{{candidate.user.candidatephotos_set.photo.url}获取用户照片,但没有成功
我还尝试将views.py模型从“Candidate”更改为“CandidateToJob”(直通模型),但我得到了404错误,我不知道为什么
那么,实现这一点的最佳实践是什么呢?根本不需要在视图中查询候选照片。您的候选对象已经通过用户建立了相关关系,因此您可以简单地遵循以下步骤:
{% for photo in object.user.candidatephotos_set.all %}
嗨,丹尼尔,谢谢,但这不起作用。也许是因为我忘了提到我是以“公司用户”的身份登录的。所以我登录的用户没有照片。在这个应用程序中,我有两种类型的用户:公司用户和候选用户。哦,很抱歉,我使用:{%for candidatephotos In object.user.candidatephotos_set.all%}Kudos来实现它。