首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将媒体添加到FeinCMS扩展

将媒体添加到FeinCMS扩展
EN

Stack Overflow用户
提问于 2014-05-16 13:24:26
回答 1查看 119关注 0票数 0

我刚接触feincms,正在尝试写一个扩展,我写了一个非常基本的扩展

代码语言:javascript
复制
from __future__ import absolute_import, unicode_literals

from django.db import models
from django.utils.translation import ugettext_lazy as _

from feincms import extensions


class Extension(extensions.Extension):
    def handle_model(self):
        self.model.add_to_class('excerpt', models.TextField(
            _('excerpt'),
            blank=True,
            help_text=_('Excerpts are good!')))

    def handle_modeladmin(self, modeladmin):
        modeladmin.add_extension_options(_('Exceprt'), {
            'fields': ('excerpt',),
            'classes': ('collapse',),
        })

来添加一个文本字段摘录,但现在我想写一个更复杂的。我想要允许一个单一的特色图像添加到页面使用类似于为一个地区选择媒体的过程,但我没有任何线索如何去做。任何关于这个扩展的指导都将不胜感激!

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-08-09 03:13:53

不确定我是否正确理解了您的问题,但这可能会有所帮助:https://github.com/matthiask/feincms-in-a-box/blob/master/box/cms/models.py#L57 --只需添加一个MediaFileForeignKey,并将新字段添加到raw_id_fields。这应该就是全部。

示例代码如下:

代码语言:javascript
复制
from __future__ import absolute_import, unicode_literals

from django.db import models
from django.utils.translation import ugettext_lazy as _

from feincms.module.page.models import Page
from feincms.extensions import Extension
from feincms.module.medialibrary.fields import MediaFileForeignKey
from feincms.module.medialibrary.models import MediaFile

class ExcerptExtension(Extension):
    def handle_model(self):
        self.model.add_to_class(
            'excerpt_image',
            MediaFileForeignKey(
                MediaFile, verbose_name=_('image'),
                blank=True, null=True, related_name='+'))
        self.model.add_to_class(
            'excerpt_text',
            models.TextField(_('text'), blank=True))

    def handle_modeladmin(self, modeladmin):
        modeladmin.raw_id_fields.append('excerpt_image')
        modeladmin.add_extension_options(_('Excerpt'), {
            'fields': ('excerpt_image', 'excerpt_text'),
        })


Page.register_extensions(
    ExcerptExtension,
)

注意:此代码需要最新版本的FeinCMS才能按原样工作。更准确地说,只有1.9和更高版本支持直接将扩展类(而不是虚线Python路径)传递给Page.register_extensions

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23693157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档