Django:在temp中显示模型的外键

2024-09-30 12:19:49 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个相当基本的问题(我是Django新手),我在模板中显示外键时遇到问题。 我有这样一个模型,在工作模型中,“雇主”作为许多领域:

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)

我尽量把所有包含“计算机”的工作都作为一门专业:

^{pr2}$

对于每个工作,我想在模板中显示雇主姓名:

<!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>

我没有得到任何价值工作单位名称. 那么我怎样才能显示每个工作的雇主的名字呢?在


Tags: 模型模板truedefaultmodelmodelshtmljob
2条回答

这是因为你没有使用外键而是多对多字段

如果一份工作只有一个雇主,试试这个

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)

说明

考虑以下模型

^{pr2}$

在上述模型中,一个AppliancePart只能属于一个Company,但一个Company可以制造多个{}。当我们讨论Appliance时,Appliance可以由一个或多个Company制造的零件组成,因此关系是 many appliances < > many companies

有关详细信息,请参阅this answer

相关问题 更多 >

    热门问题