ser*_*iuz 3 django inheritance
我正在阅读使用Django的Python Web Development一书,我在书中找到了这个例子:
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'})
Run Code Online (Sandbox Code Playgroud)
好像它不起作用:
FieldError:类'SmithBook'中的本地字段'authors'与基类'Book'中类似名称的字段冲突
我使用的是Django 1.5.3,本书适用于Django 1.0.
为什么在Django中继承时无法覆盖字段?是否有可能在Django 1.0中,或者这本书中的错误?
Roh*_*han 10
不要以为这是django中允许的,甚至不是1.0.
在普通的Python类继承中,子类允许覆盖父类的任何属性.在Django中,不允许使用Field实例的属性(至少目前不是这样).如果基类具有名为author的字段,则无法在从该基类继承的任何类中创建另一个名为author的模型字段.
这仍然适用于最新版本的django.
| 归档时间: |
|
| 查看次数: |
3024 次 |
| 最近记录: |