Frequently Asked Questions¶
Contents
Entries¶
I want to write my entries in MarkDown, RestructuredText or any lightweight markup language, is it possible ?¶
Yes of course, Zinnia currently support MarkDown, Textile and
reStructuredText as markup languages, but if you want to write your
entries in a custom markup language a solution is to disable the WYSIWYG
editor in the admin site with the ZINNIA_WYSIWYG
setting, and
use the appropriate template filter in your templates.
I want to have multilingual support on the entries, is it possible ?¶
Due to the extending capabilities of Zinnia, many solutions on this problematic are possible, but you must keep in mind that multiplingual entries is just a concept, the needs and the implementations can differ from a project to another. But you should take a look on this excellent tutorial to convert Zinnia into a multilingual Weblog with django-modeltranslation, which can be a good starting point for your needs.
Is Zinnia able to allow multiple users to edit it’s own blog ?¶
Zinnia is designed to be multi-site. That’s mean you can publish entries on several sites or share an admin interface for all the sites handled.
Zinnia also provides a new permission that’s allow or not the user to change the authors. Useful for collaborative works.
But if you want to restrict the edition of the entries by site, authors or whatever you want, it’s your job to implement this functionality in your project.
The simple way to do that, respecting the Django rules, is to override the admin classes provided by Zinnia, and register those classes in another admin site.
Images¶
How can I use the image field for fitting to my skin ?¶
Take a looks at sorl.thumbnail and use his templatetags.
You can do something like this in your templates:
<img src="{% thumbnail object.image 250x250 %}" />
I want an image gallery in my posts, what can I do ?¶
Simply create a new application with a model named EntryImage
with a
ForeignKey
to the
Entry
model.
Then in the admin module of your app, unregister the
EntryAdmin
class, and use
InlineModelAdmin
in your new admin class.
Here an simple example :
# The model
from django.db import models
from django.utils.translation import ugettext_lazy as _
from zinnia.models.entry import Entry
class EntryImage(models.Model):
"""Image Model"""
entry = models.ForeignKey(Entry, verbose_name=_('entry'))
image = models.ImageField(_('image'), upload_to='uploads/gallery')
title = models.CharField(_('title'), max_length=250)
description = models.TextField(_('description'), blank=True)
def __unicode__(self):
return self.title
# The admin
from django.contrib import admin
from zinnia.admin import EntryAdmin
from zinnia.models.entry import Entry
from gallery.models import EntryImage
class EntryImageInline(admin.TabularInline):
model = EntryImage
class EntryAdminImage(EntryAdmin):
inlines = (EntryImageInline,)
admin.site.unregister(Entry)
admin.site.register(Entry, EntryAdminImage)
Another and better solution is to extend the Entry
model like described in Extending Entry model.
Comments¶
Is it possible have a different comment system, with reply feature for example ?¶
Yes the comment system integrated in Zinnia is based on
django.contrib.comments
and can be extended or replaced if doesn’t
quite fit your needs. You should take a look on the
customizing the comments framework documentation for more information.
Warning
The custom comment Model must be inherited from
Comment
and implement the
CommentManager
to properly
work with Zinnia.
If you want the ability to reply on comments, you can take a look at zinnia-threaded-comments or at django-threadcomments.