Djangocms模型/插件的字符串表示

2024-04-19 18:53:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我为一个名为PageBlockPluginDjango CMS项目构建了一个custom plugin。关联的PageBlock模型具有一个HTML字段,我在该模型上定义了一个__str__方法,它将HTML内容截断为前三个单词。当我在这个模型的Django admin视图中时,我会看到一个实例列表,这些实例已经放在我的一个模板中:

Page Block Admin View

这看起来太好了!但是,当我在同一模板的前端编辑器中切换到“结构”视图时,我看到的只是实例ID的列表:

Page Block Frontend

我看了很多插件的例子,但还没有弄清楚如何使用模型的字符串表示来表示相关的插件。有什么想法吗?在

以下是我目前定义的精简版本:

模型.py

class PageBlock(CMSPlugin):
    content = HTMLField()

    def __str__(self):
        return Truncator(strip_tags(self.content)).words(3, truncate="...")

cms公司_插件.py

^{pr2}$

管理员py

class PageBlockAdmin(FrontendEditableAdminMixin, admin.ModelAdmin):
    pass

admin.site.register(models.PageBlock, PageBlockAdmin)

Tags: django实例py模型插件视图模板列表
1条回答
网友
1楼 · 发布于 2024-04-19 18:53:45

因为您使用的是python2.7,所以应该使用__unicode__(self)方法,而不是__str__(self)。如果要使用后者,可以使用@python_2_unicode_compatible修饰符。阅读更多信息here。在

相关问题 更多 >