django-如何为几乎相同的模型重用模板?
对django和python来说还是相当陌生的 我定义了从基类继承的两个几乎相同的模型:django-如何为几乎相同的模型重用模板?,django,django-templates,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.Ch
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)
我想对公司和联系人对象做非常类似的事情。然而,在我的模板中,似乎我需要为每个对象使用单独的模板,因为要访问对象中的成员,我必须使用
{{ blah.name }} {{ blah.address}}
一但
{{ blah.name }} {{ blah.telephone}}
另一方面
所有这些重复让我怀疑。是否有一些python或django模板语法允许我在两个模型中重用单个模板(具有某种内置智能)
谢谢你的帮助!
W.如果在模型中创建一个属性,指示每种类型的特定感兴趣字段,则允许在模板中使用一个变量。例如:
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
现在,您可以在模板中使用{{blah.display_field}},它将根据对象类型打印您想要的值。Perfect!我不知道那房子是怎么建的。。。谢谢它甚至不必是属性,Django模板将调用该方法,因为它不需要额外的参数。但是使用
属性感觉更好:)