作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通过 add_to_class() 添加字段时,我的模型继承存在问题。
我有一个模型 File(models.Model)
和 Image(File)
- 这些来自 django-filer。
在我的应用程序中,我正在导入它们并添加字段和方法:
def method_x(self):
print "x"
File.add_to_class("expiration_date", models.DateField(null=True, blank=True))
File.add_to_class("method_x", method_x)
>>> some_file = File.objects.get(id=8)
>>> some_image = Image.objects.get(id=8)
>>>
>>> print some_file.expiration_date # this works
... None
>>>
>>> some_image.metgod_x() # this works
>>> x
>>>
>>> print some_image.expiration_date # and this not
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'Image' object has no attribute 'expiration_date'
最佳答案
您的型号 add_to_class
不会将该字段添加为属性。它只是调用 contribute_to_class
在你的领域:
django/db/models/base.py#L218
您所在领域的contribute_to_class
也不这样做。它只是将字段添加到模型的 _meta
成员(member): django/db/models/fields/__init__.py#L234
关于django add_to_class() 使模型继承/MRO 工作出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7703989/
通过 add_to_class() 添加字段时,我的模型继承存在问题。 我有一个模型 File(models.Model)和 Image(File) - 这些来自 django-filer。 在我的应
在我的 models.py 中,我使用这些代码来扩展两个字段: User.add_to_class('bio', models.TextField(blank=True)) User.add_to_c
我是一名优秀的程序员,十分优秀!