问题/差距
Django CMS文档清楚地描述了extending the Page and Title Models的过程。然而,缺少关于添加方法(如下面的属性方法)的可能性的文档,或者我似乎找不到它。
注意:当我将它直接包含在Django CMS Page
模型下时,所提供的示例可以完美地工作。这当然不是首选的方式。
问题
假设我想将下面的方法添加到页面(cms.models.pagemodel.Page)或标题模型(假设它们可能遵循相同的过程)* CMS应用程序 * 之外。如何做到这一点?
@property
def my_custom_page_property(self):
try:
logger.info(f'Working....')
return {}
except Exception as e:
logger.error(f'Error: {e}')
return {}
尝试
在一个单独的应用程序中,我添加了下面的代码,并进行了迁移。图像场配置正确且工作正常。但是,该方法似乎没有返回任何内容。
from cms.extensions import PageExtension
from cms.extensions.extension_pool import extension_pool
class MyCustomExtension(PageExtension):
image = models.ForeignKey(Image,
on_delete=models.SET_DEFAULT,
default=None,
blank=True,
null=True)
@property
def my_custom_page_property(self):
..
1条答案
按热度按时间zbsbpyhn1#
这是可能的-我已经设置了一个页面扩展,我用来添加图像到页面。
举个例子,
然后在模板中,我得到了;
此
test_prop
正在呈现到页面。