class A(models.Model):
field1 = models.CharField(max_length=10)
field2 = models.IntegerField(default=0)
def __str__(self):
return self.field1 + str(self.field2)
class B(models.Model):
a = models.ForeignKey(A)
...
现在在模板中,我想使用以下方式呈现模型B实例的“ a”属性:
{{ binstance.a }}
,但这似乎要么显示空字符串,要么什么都不显示。
如何在模板中呈现外键的 str 方法?
答案 0 :(得分:2)
实际上,这是默认的django行为。检查是否通过模板上下文传递B
实例,并在模板中使用正确的变量名。
答案 1 :(得分:0)
也许我会选择其他方法并创建一个template tag
@register.filter(name='fullname')
def fullname(pk):
b = B.objects.get(pk=pk)
field1 = b.a.first_name
field2 = b.a.last_name
return "{} {}".format(field1, field2)
然后您可以使用{{binstance.pk|fullname}}