如何在Django模板中显示ForeignKey的内容

inb24sb2  于 2023-06-25  发布在  Go
关注(0)|答案(2)|浏览(156)

我是django的初学者,我面临的一个问题是如何显示ForeignKey项的内容,例如我有一个名为company的表,其中有一个字段“parentcompany”用于存储具有parentcompany的ForeignKey(UID),所有公司都在this company表中创建。我已经成功创建了此关系,但我无法在模板中显示父公司的名称。

我已尝试使用此{{company.parentcompany_id.companyName}},但未显示任何内容。

fcipmucu

fcipmucu1#

它应该是:

company.parentcompany.companyName

不需要使用parentcompany_id,Django会自动检索链接对象。

lztngnrs

lztngnrs2#

而不是传递**{{company.parentcompany_id.companyName}}传递{{company.parentcompany.companyName}}**

models.py

class ComapnyModel(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()
    contact = models.CharField(max_length=12)
    parentcompany = models.ForeignKey('self',on_delete=models.CASCADE, blank=True, null=True)

views.py

def DemoView(request):
  data = ComapnyModel.objects.all()
  context = {
      'data': data
  }
  return render(request, 'index.html', context)

HTML代码

<div class="container p-5">
  <div class="row mx-auto">
    <div class="col-12">
      <table class="table">
        <thead>
          <tr>
            <th scope="col">No.</th>
            <th scope="col">Name</th>
            <th scope="col">E-Mail</th>
            <th scope="col">Contact</th>
            <th scope="col">Parent Company</th>
          </tr>
        </thead>
        <tbody>
          {% for i in data %}
          <tr>
            <td>{{forloop.counter}}</td>
            <td>{{i.name}}</td>
            <td>{{i.email}}</td>
            <td>{{i.contact}}</td>
            <td>
              {% if i.parentcompany %}
              {{i.parentcompany.name}}
              {% else %}
              <span><i> - </i></span>
              {% endif %}
            </td>
          </tr>
          {% endfor %}
        </tbody>
      </table>
    </div>
  </div>
</div>

浏览器输出

相关问题