django - 如何为几乎相同的模型重用模板?

Wes*_*ley 3 django django-templates

django和python仍然相当新.

我已经定义了两个从基类继承的几乎相同的模型:

class addressbook(models.Model):
    name = models.CharField(max_length=50)

class company(addressbook):
    address = models.CharField(max_length=50)

class contact(addressbook):
    telephone - models.CharField(max_length=30)
Run Code Online (Sandbox Code Playgroud)

我想与公司和联系对象做类似的事情.但是在我的模板中看起来我需要为每个对象使用单独的模板,因为要访问对象中的成员我必须使用类似的东西

{{ blah.name }} {{ blah.address}}
Run Code Online (Sandbox Code Playgroud)

在一个但是

{{ blah.name }} {{ blah.telephone}} 
Run Code Online (Sandbox Code Playgroud)

在另一个.

所有这些重复让我怀疑.是否有一些python或django模板语法允许我重用两个模型的单个模板(具有某种内置智能)?

谢谢你的帮助!W.

Dan*_*een 5

如果在模型中创建一个属性,指示每种类型的特定感兴趣字段,则可以在模板中使用一个变量.例:

class addressbook(models.Model):
    name = models.CharField(max_length=50)

class company(addressbook):
    address = models.CharField(max_length=50)

    @property
    def display_field(self):
        return self.address

class contact(addressbook):
    telephone = models.CharField(max_length=30)

    @property
    def display_field(self):
        return self.telephone
Run Code Online (Sandbox Code Playgroud)

现在,在模板中,您可以使用{{blah.display_field}},它将打印您想要的值,具体取决于对象类型.