我是django的初学者,我面临的一个问题是如何显示ForeignKey项的内容,例如我有一个名为company的表,其中有一个字段“parentcompany”用于存储具有parentcompany的ForeignKey(UID),所有公司都在this company表中创建。我已经成功创建了此关系,但我无法在模板中显示父公司的名称。
我已尝试使用此{{company.parentcompany_id.companyName}},但未显示任何内容。
fcipmucu1#
它应该是:
company.parentcompany.companyName
不需要使用parentcompany_id,Django会自动检索链接对象。
lztngnrs2#
而不是传递**{{company.parentcompany_id.companyName}}传递{{company.parentcompany.companyName}}**
{{company.parentcompany_id.companyName}}
{{company.parentcompany.companyName}}
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)
def DemoView(request): data = ComapnyModel.objects.all() context = { 'data': data } return render(request, 'index.html', context)
<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>
2条答案
按热度按时间fcipmucu1#
它应该是:
不需要使用parentcompany_id,Django会自动检索链接对象。
lztngnrs2#
而不是传递**
{{company.parentcompany_id.companyName}}
传递{{company.parentcompany.companyName}}
**models.py
views.py
HTML代码
浏览器输出