![](/img/trans.png)
[英]Django: displaying foreign key model in parent model's detail view template
[英]Django: displaying a foreign key of a model in template
這是一個相當基本的問題(我是Django的新手),我無法在模板中顯示外鍵。 我有這個模型,它在Job模型中具有“雇主”作為ManyToManyField:
from django.db import models
# Create your models here.
class Employer(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=50,default="")
business = models.CharField(max_length=25, default="")
team = models.IntegerField()
about = models.TextField(max_length=1000)
country = models.CharField(max_length=25, default="")
city = models.CharField(max_length=25, default="")
class Job(models.Model):
date = models.DateTimeField(auto_now_add=True, blank=True)
specialism = models.CharField(max_length=25)
employer = models.ManyToManyField(Employer)
我嘗試獲取所有包含“計算機”專業知識的工作:
from django.shortcuts import render
from .models import Job, Employer
# Create your views here.
def index(request):
return render(request, 'pages/index.html')
def post_list(request):
jobs = Job.objects.all().filter(specialism="Computers")
return render(request, 'wall.html',{'jobs':jobs})
對於每項工作,我想在模板中顯示雇主名稱:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<center><h1>WALL</h1></center>
{% block content %}
{{jobs.count}}
{% for job in jobs %}
<h2>specialism :{{job.specialism}} employer: {{job.employer.name}}</h2>
{% endfor %}
{% endblock %}
</body>
</html>
我得到None作為job.employer.name的值。 那么我該如何顯示每項工作的雇主名稱?
那是因為您沒有使用foriegn鍵,而是使用了許多字段
如果工作只有一位雇主,請嘗試此操作
employer = models.ForeignKey(Employer)
您需要使用ForeignKey
而不是ManyToManyField
將Job
模型更改為以下
class Job(models.Model):
date = models.DateTimeField(auto_now_add=True, blank=True)
specialism = models.CharField(max_length=25)
employer = models.ForeignKey(Employer)
說明
考慮以下模型
class Company(model.Model):
name = models.CharField(max_length=128)
class AppliancePart(models.Model):
name = models.CharField(max_length=25)
company = models.ForeignKey(Company)
class Appliance(models.Model):
name = models.CharField(max_length=25)
company = models.ManyToManyField(Company)
在上面的模型中,一個AppliancePart
只能屬於一個Company
但是一個Company
可以制造一個以上的AppliancePart
。 就像我們所說的Appliance
, Appliance
可以由一個或多個Company
制造的零件構成,因此關系是many appliances <--> many companies
請參閱此答案以獲取更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.