【问题标题】:Django-CMS: PlaceholderField in django adminDjango-CMS:django admin 中的 PlaceholderField
【发布时间】:2019-01-25 05:58:52
【问题描述】:

我正在尝试在 django admin 中使用 PlaceholderField 而不是 HTMLField。我阅读了this 文档但一无所获 所以我的models.py

from django.db import models
from cms.models.fields import PlaceholderField
class Blog(models.Model):
    name = models.CharField(max_length=100)
    field = PlaceholderField('content')

然后我添加了一些代码到admin.py

from django.contrib import admin
from example.models import Blog
from cms.admin.placeholderadmin import PlaceholderAdminMixin

class MyModelAdmin(PlaceholderAdminMixin, admin.ModelAdmin):
    pass
admin.site.register(Blog, MyModelAdmin)

但是当我尝试在 django admin 中添加新模型时,我 see only name field

这是我丢失的一些步骤吗?

【问题讨论】:

    标签: python django django-admin django-cms


    【解决方案1】:

    PlaceholderField 允许您通过前端将 CMS 插件添加到您的博客对象,因此您只能在管理员视图中看到 CharField

    在您的博客DetailView 模板中,您需要为您的对象呈现占位符字段。你会做类似的事情;

    {% load cms_tags %}
    
    <h1>{{ object.name }}</h1>
    
    {% render_placeholder object.field "640" %}
    

    占位符字段的文档是here

    然后,当您查看 DetailView 时,您可以将内容添加到占位符,就像任何带有占位符的标准 CMS 页面一样。

    CMS 博客系统的一个很好的例子是 aldryn-newsblog,由核心 CMS 团队编写。 https://github.com/aldryn/aldryn-newsblog

    【讨论】:

    • 例如谢谢!我还在 django cms 源代码中找到了一些示例。我想这也会有所帮助。非常感谢
    • 您是否成功地使用非管理员用户修改了您的 PlaceholderField?即使在授权权限中授予所有访问权限后,我也尝试过,但我仍然收到相同的消息“您无权修改此插件”
    猜你喜欢
    • 2013-06-04
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2016-01-23
    • 2012-12-04
    • 2010-11-18
    相关资源
    最近更新 更多