Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A Django-based CMS with a focus on extensibility and concise code

License

NotificationsYou must be signed in to change notification settings

feincms/feincms

Repository files navigation

NOTE! If you're starting a new project you may want to take a look at feincms3 (https://feincms3.readthedocs.io/). FeinCMS is still maintained and works well, but feincms3 is where current development is happening.

FeinCMS - An extensible Django-based CMS

When was the last time, that a pre-built software package you wanted touse got many things right, but in the end, you still needed to modifythe core parts of the code just because it wasn't (easily) possible tocustomize the way, a certain part of the system behaved?

Django came to rescue all of us, who were not happy with either doingeverything on our own or customizing another software package until itwas impossible to update.

The biggest strength of a framework-like design is, that it tries notto have a too strong view of what the user should do. It should make somethings easy, but just GET OUT OF THE WAY most of the time.

Just after discovering the benefits of a framework-like approach tosoftware design, we fall back into the rewrite everything all the timemindset and build a CMS which has very strong views how content shouldbe structured. One rich text area, a media library and some templates,and we have a simple CMS which will be good enough for many pages. Butwhat if we want more? If we want to be able to add custom content? Whatif the user can't be trusted to resize images before uploading them?What if you'd like to add a gallery somewhere in between other content?What if the user should be able to administer not only the main content,but also a sidebar, the footer?

With FeinCMS, this does not sound too good to be true anymore. And it'snot even complicated.

FeinCMS is an extremely stupid content management system. It knowsnothing about content -- just enough to create an admin interface foryour own page content types. It lets you reorder page content blocksusing a drag-drop interface, and you can add as many content blocksto a region (f.e. the sidebar, the main content region or somethingelse 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 markdownthat 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 theCMS without being forced to use whatever the developers deemed best:

frommarkdown2importmarkdownfromfeincms.module.page.modelsimportPagefromdjango.dbimportmodelsclassMarkdownPageContent(models.Model):content=models.TextField()classMeta:abstract=Truedefrender(self,**kwargs):returnmarkdown(self.content)Page.create_content_type(MarkdownPageContent)

That's it. Not even ten code lines for your own page content type.

Getting started

Visit these sites

Repository branches

The FeinCMS repository on github has several branches. Their purpose andrewinding policies are described below.

  • maint: Maintenance branch for the second-newest version of FeinCMS.
  • main: Stable version of FeinCMS.

main andmaint are never rebased or rewound.

  • next: Upcoming version of FeinCMS. This branch is rarely rebasedif ever, but this might happen. A note will be sent to the officialmailing list whenevernext has been rebased.
  • pu or feature branches are used for short-lived projects. Thesebranches aren't guaranteed to stay around and are not meant to bedeployed into production environments.

[8]ページ先頭

©2009-2025 Movatter.jp