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)
我想与公司和联系对象做非常类似的事情。但是在我的模板中看起来我需要为每个对象使用单独的模板,因为访问对象中的成员我必须使用类似
的内容{{ blah.name }} {{ blah.address}}
在一个但
{{ blah.name }} {{ blah.telephone}}
在另一个。
所有这些重复让我怀疑。是否有一些python或django模板语法允许我在两个模型中重用单个模板(具有某种内置智能)?
感谢您的帮助! W上。
答案 0 :(得分: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
现在,在您的模板中,您可以使用{{blah.display_field}},它会打印您想要的值,具体取决于对象类型。