django - 模板上显示的Django外键多对一关系
问题描述
我正在尝试显示与公司(多对一)相关的工作机会,但我无法做到。我尝试了很多循环,但我什至没有得到查询集,所以我必须做错但无法解决我做错了什么。
我的文件
模型.py
class Company(models.Model):
# field person with relation many to one (many persons to 1 company)
team = models.ManyToManyField('Person')
name = models.CharField(max_length=100, blank=False)
...
class Job(models.Model):
name = models.CharField(max_length=40, blank=False)
level = models.CharField(max_length=10, blank=False, choices=LEVELS)
company = models.ForeignKey('Company', on_delete=models.CASCADE, default=None, blank=False)
emp_type = models.ManyToManyField('Emp_type', blank=False)
...
def __str__(self):
return self.name
comp_list.html
<div class="company-logo-container">
<img class="company-logo" src="{{ brand.logo.url }}">
</div>
<ul class="list-group">
<li class="list-group-item">
<a class="nav-link" href="#team">Team</a>
</li>
<li class="list-group-item">
<a class="nav-link" href="#social_media">Social Media</a>
</li>
<li class="list-group-item">
<a class="nav-link" href="#offers">Job Offers</a>
</li>
{% for job in jobs %}
{% for company in job.company.all %}
{{ job.name }}
{% endfor %}
{% endfor %}
</ul>
视图.py
def brands(request, slug):
brand = get_object_or_404(Company, slug=slug)
return render(request, 'company/comp_view.html', {'brand': brand})
def jobs(request, slug):
job = get_object_or_404(Job, slug=slug)
return render(request, 'company/job_view.html', {'job': job})
我创建了一些工作机会并将它们分配给 1 家公司,但我无法在公司视图中获取它们,所以看起来循环是错误的,但我尝试了这么多循环但没有结果
解决方案
考虑到您将公司对象从brands
视图传递到comp_view.html
模板brand
:
{% for job in brand.job_set.all %}
{{ job.name }}
{% endfor %}
只需为一家公司找到工作,然后遍历它们。
如果您愿意,您还可以查看工作:
def brands(request, slug):
brand = get_object_or_404(Company, slug=slug)
jobs = brand.job_set.all()
return render(request, 'company/comp_view.html', {'brand': brand, 'jobs': jobs})
接着:
{% for job in jobs %}
{{ job.name }}
{% endfor %}
推荐阅读
- ruby-on-rails - 触发回调 after_commit 但不是由于触摸
- spring-boot - 使用 HTTPUrlConnection 进行 Mockito 单元测试
- asp.net-mvc-5 - MVC 5 Ajax.BeginForm 提交按钮调用当前页面而不是指定的控制器和操作的 URL
- python - Django-nose 失败 - KeyError: u'en-us'
- html - 如何在 HTML Body 中为 Google Apps 脚本上的自动电子邮件格式化数字
- ios - Picker 查看未捕获的异常 SWIFT
- hyperledger-composer - Hyperledger Composer Playground Setup Demo 移除
- python - 基于月份列的多个条形图
- java - 如何在不获取 Optional 的情况下使用 groupingBy 和减少
- git - 是否可以通过 GitKraken 或任何其他替代方案以图形方式将特定提交推送到分支?