1
not sure whether I understand your question correctly, but maybe this will help: https://github.com/matthiask/feincms-in-a-box/blob/master/box/cms/models.py#L57 — just add a MediaFileForeignKey, and add the new field to raw_id_fields. That should be all.
Example code follows:
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,
)
Note: A recent version of FeinCMS is required for this code to work as-is. More precisely, only versions 1.9 and up support passing extension classes (instead of dotted Python paths) to Page.register_extensions
directly.
Source:stackexchange.com