1 抽象基础类实现
class Author(models.Model):
name=models.CharField(max_length=100)
class Book(models.Model):
title=models.CharField(max_length=100)
genre=models.CharField(max_length=100)
num_pages=models.IntegerField()
auhors=models.ManyToManyField(Author)
def __unicode__(self):
return self.title
class Meta:
abstract=True
class SmithBook(Book):
authors=models.ManyToManyField(Author,limit_choices_to{
'name__endswith':'Smith'
})
abstrat=True 指定Book类不能实例化,为其实际子类对象提供属性
2多表继承
class Author(models.Model):
name=models.CharField(max_length=100)
class Book(models.Model):
title=models.CharField(max_length=100)
genre=models.CharField(max_length=100)
num_pages=models.IntegerField()
authors=models.ManyToManyField(Author)
def __unicode__(self):
return self.title
class SmithBook(Book):
authors=models.ManyToManyField(Author,limit_choices_to={
'name_endswith':'Smith'
})
父类可以实例化,且对应一个表