FeinCMS - An extensible Django-based CMS¶
FeinCMS is an extremely stupid content management system. It knows nothing about content – just enough to create an admin interface for your own page content types. It lets you reorder page content blocks using a drag-drop interface, and you can add as many content blocks to a region (f.e. the sidebar, the main content region or something else which I haven’t thought of yet). It provides helper functions, which provide ordered lists of page content blocks. That’s all.
Adding your own content types is extremely easy. Do you like markdown that much, that you’d rather die than using a rich text editor? Then add the following code to your project, and you can go on using the CMS without being forced to use whatever the developers deemed best:
from markdown2 import markdown
from feincms.module.page.models import Page
from django.db import models
class MarkdownPageContent(models.Model):
content = models.TextField()
class Meta:
abstract = True
def render(self, **kwargs):
return markdown(self.content)
Page.create_content_type(MarkdownPageContent)
That’s it. Only ten lines of code for your own page content type.
Contents¶
- Installation instructions
- The built-in page module
- Content types - what your page content is built of
- What is a content type anyway?
- Rendering contents in your templates
- Implementing your own content types
- Customizing the render method for different regions
- Extra media for content types
- Influencing request processing through a content type
- Bundled content types
- Restricting a content type to a subset of regions
- Design considerations for content types
- Configuring and self-checking content types at creation time
- Obtaining a concrete content type model
- Extensions
- Administration interfaces
- Integrating 3rd party apps into your site
- Default page handler
- Generic and custom views
- Integrating 3rd party apps
- Adapting the 3rd party application for FeinCMS
- Registering the 3rd party application with FeinCMS’
ApplicationContent
- Writing the models
- Returning content from views
- Letting the application content use the full power of Django’s template inheritance
- More on reversing URLs
- Additional customization possibilities
- Letting 3rd party apps define navigation entries
- Media library
- Template tags
- Settings
- Database migration support for FeinCMS
- Versioning database content with
django-reversion
- Advanced topics
- Frequently Asked Questions
- Contributing to the development of FeinCMS
- FeinCMS Deprecation Timeline
Releases¶
- FeinCMS 1.2 release notes
- FeinCMS 1.3 release notes
- FeinCMS 1.4 release notes
- FeinCMS 1.5 release notes
- FeinCMS 1.6 release notes
- FeinCMS 1.7 release notes
- FeinCMS 1.8 release notes
- FeinCMS 1.9 release notes
- FeinCMS 1.10 release notes
- FeinCMS 1.11 release notes
- FeinCMS 1.12 release notes
- FeinCMS 1.13 release notes