我是Django的新手,无法从我的任何搜索中找到答案。
我在Django 2.0模板中显示相关字段时遇到问题。我的模型中有两个字段指的是同一个外国模型。处理这个问题的最佳方法是什么?
我非常感谢您对此提供任何帮助。
模型
class Clients(models.Model):
company_name = models.CharField(max_length=150)
type = models.ForeignKey(Types, on_delete=models.PROTECT)
division = models.ForeignKey(Divisions, on_delete=models.PROTECT)
address1 = models.CharField(max_length=150, null=True, blank=True)
address2 = models.CharField(max_length=150, null=True, blank=True)
city = models.CharField(max_length=150, null=True, blank=True)
state = models.CharField(max_length=30, null=True, blank=True)
zip = models.CharField(max_length=30, null=True, blank=True)
name = models.CharField(max_length=150, null=True, blank=True)
phone = models.CharField(max_length=75, null=True, blank=True)
mobile = models.CharField(max_length=75, null=True, blank=True)
fax = models.CharField(max_length=150, null=True, blank=True)
email = models.EmailField(null=True, blank=True)
website = models.URLField(null=True, blank=True)
pb_support_rate = models.ForeignKey(SupportRates, null=True, on_delete=models.PROTECT, related_name='pb_rate', blank=True)
px_support_rate = models.ForeignKey(SupportRates, null=True, on_delete=models.PROTECT, related_name='px_rate', blank=True)
查看
class ClientsDetailView(DetailView):
model = models.Clients
context_object_name = 'client_details'
template_name = 'client_details.html'
模板
<tr>
<th style=" border: 1px solid black;padding: 0px 5px 0px 5px;white-space: nowrap;">PB Support Rate</th>
<td style=" border: 1px solid black;padding: 0px 5px 0px 5px;white-space: nowrap;" >{{ object.pb_support_rate|default_if_none:'' }}</td>
<td style=" border: 1px solid black;padding: 0px 5px 0px 5px;white-space: nowrap;text-align:right;" >{{ object.pb_rate__rate_amount }}</td>
</tr>
答案 0 :(得分:1)
只需在模板中使用字段名称即可。同一型号的外键是否有1个,2个或10个并不重要。
字段名称为pb_support_rate
,因此{{ object.pb_support_rate }}
应该可以正常使用。
该模型没有字段名称pb_rate__rate_amount
,因此我不知道您期望object.pb_rate__rate_amount
做什么 - 也许您的意思是
{{ object.pb_support_rate.rate_amount }}