Simple yet powerful and really extendable application for managing a blog within your Django Web site.

Related tags

Django python blog django
Overview

Django Blog Zinnia Latest version on Pypi

Build Status - develop branch Coverage of the code

Simple yet powerful and really extendable application for managing a blog within your Django Web site.

Zinnia has been made for publishing Weblog entries and designed to do it well.

Basically any feature that can be provided by another reusable app has been left out. Why should we re-implement something that is already done and reviewed by others and tested?

Make a free donation with Paypal to encourage the development

Features

More than a long speech, here the list of the main features:

Examples

Take a look at the online demo at: http://demo.django-blog-zinnia.com/ or you can visit these websites who use Zinnia.

If you are a proud user of Zinnia, send me the URL of your website and I will add it to the list.

Online resources

More information and help available at these URLs:

Comments
  • Zinnia breaks on Django 1.7b1: get_user_model at init time

    Zinnia breaks on Django 1.7b1: get_user_model at init time

    zinnia.models.author.Author uses get_user_model() at module import time, which is forbidden by Django 1.7 (https://docs.djangoproject.com/en/dev/releases/1.7/#app-loading-refactor). 1.7 is due for release soon (beta has been released), so a way to avoid this import time dependency should be figured out.

    Bug Improvement Custom User 
    opened by delroth 49
  • Zinnia0.18, in Python3 venv, DEBUG on, Cannot resolve keyword 'entries' into field. Choices are:avatar, comment_comments,...

    Zinnia0.18, in Python3 venv, DEBUG on, Cannot resolve keyword 'entries' into field. Choices are:avatar, comment_comments,...

    Hi! I'm using Django 1.10 and I'm trying to deploy blog Zinnia in a Python 3 virtualenv. I installed Zinnia 0.18 using pip, and followed the "get started" guide to set everything in my site settings.py and urls.py, then made the migrations. However, when I went to 127.0.0.1/weblog , the exception raised.

    django.core.exceptions.FieldError: Cannot resolve keyword 'entries' into field. Choices are: avatar, comment_comments, comment_flags, date_joined, email, first_name, groups, id, is_active, is_staff, is_superuser, last_login, last_name, logentry, password, user_permissions, username

    I looked up issues solved (or closed) before, but unluckily none of them works for me.

    Apps I installed:

    Django==1.10 Pillow==3.3.1 PyMySQL==0.7.6 beautifulsoup4==4.5.1 django-appconf==1.0.2 django-avatar==3.0.0 django-blog-zinnia==0.18 django-contrib-comments==1.7.2 django-mptt==0.8.6 django-tagging==0.4.5 django-xmlrpc==0.1.5 mots-vides==2015.5.11 pyparsing==2.1.9 pytz==2016.6.1 regex==2016.08.27

    Bug 
    opened by valorad 39
  • Made it django 1.6 and Python 3 compatible

    Made it django 1.6 and Python 3 compatible

    With this patch, the app's tests all pass in django 1.6 and python 3.3. The only remaining failures are query-counting related tests (which I believe are a result of django-tagging being weird. See https://groups.google.com/forum/#!topic/django-blog-zinnia/LRUzSxLlHTM ), two tagging-related tests (I believe this is django-tagging's fault), and tests that import custom_url_shortener.py and custom_spam_checker.py . (Both of which do nothing but raise exceptions, guaranteeing the tests will fail.) The remaining failures fail when using the most recent version of 1.5, under python 2, and using the your most recent version of django-blog-zinnia, so they are not new regressions. I think they could most easily be fixed by replacing django-tagging with a better-supported tagging app. I'd like to address that and the related failures with a later patch.

    Some key changes: -Changes to how views/mixins/archives.py 's get_previous_next_published works. -Replacement of explicit unicode calls with six.text_type calls. -Changed how pearson_score works completely to match the algorithm found on the internet. The original version returned values that disagreed with wolfram's calculator. My updated version matches the online calculator's values. -in preview.py, we now return str(self.preview) instead of the soup itself. (Returning a non-string in str in python 3 raises an exception) -assert(Not)Equals calls converted to assert(Not)Equal to silence deprecation warnings -a new urlEqual function was added in tests/utils.py . This is intended to compare urls that have querystrings, where ordering doesn't matter. (So two urls with querystrings in different order should still compare equal)

    Some remaining questions: -CategoryAdminForm in admin/forms.py may or may not be right. The code used originally is not a part of the API so it's not documented at all. (It's not even documented in the source...) The solution currently provided makes the code run and appears to work. (It's the best guess of me and some people on the django-users IRC channel) -Why does the pearson_score function in comparison.py return 1-r instead of just r? (See the code for context) -test_vector_builder in tests/comparison.py badly needs to be looked at. I've made it disregard ordering now. I'm not sure if this is desired or not. Right now, the code assumes a stable iteration order over dictionary keys, which is not a valid assumption. I've done my best to fix it, but I don't really know if it matches what you intended or not. If the function wants to preserve order, it needs to be completely rewritten. -The changes to xmlrpc with respect to bytes vs. strings needs to be looked at. I think I did it correctly, but I'm not 100% sure. (Also tests/utils.py, TestTransport)

    Improvement 
    opened by marky1991 20
  • Extending Entry model using the abstract entry model classes not possible

    Extending Entry model using the abstract entry model classes not possible

    The Entry model is defined in the same module as the abstract entry model classes. This makes it impossible to create a custom Entry based on those abstract classes.

    The documentation is also wrong as that zinnia.models.EntryAbstractClass does not exist anymore: http://docs.django-blog-zinnia.com/en/latest/how-to/extending_entry_model.html

    The easiest fix for this would be to move the abstract entry model classes into a different module like zinnia.models_bases. Django Shop does it that way: https://github.com/divio/django-shop/blob/master/shop/models_bases/init.py

    Update: An example project which triggers this problem can be found under https://github.com/bikeshedder/zinnia-custom-entry-example

    Improvement Tests needed 
    opened by bikeshedder 19
  • KeyError at /admin/zinnia/entry/

    KeyError at /admin/zinnia/entry/

    When one of entry has a comment, it happend.

    u"Your dictionary lacks key '1'. Please provide it, because it is required to determine whether string is singular or plural."

    /usr/lib64/python2.7/site-packages/django_blog_zinnia-0.15.dev-py2.7.egg/zinnia/admin/entry.py in get_title {'title': entry.title, 'word_count': entry.word_count} reaction_count = (entry.comment_count + entry.pingback_count + entry.trackback_count) if reaction_count: return ungettext_lazy( '%(title)s (%(reactions)i reaction)', '%(title)s (%(reactions)i reactions)', reaction_count) % \ ... {'title': title, 'reactions': reaction_count} return title get_title.short_description = _('title') def get_authors(self, entry): ▼ Local vars Variable Value entry
    <Entry: iPad mini 2 with Retina Display 使用感受: 发布> self
    <zinnia.admin.entry.EntryAdmin object at 0x2bd0490> reaction_count
    1L title
    u'iPad mini 2 with Retina Display \u4f7f\u7528\u611f\u53d7 (25 \u4e2a\u5b57\u7b26)'

    Bug Admin 
    opened by mrgaolei 17
  • multiple Site problem

    multiple Site problem

    Hi, For multiples sites on the same code and db (example : bob.text.org, sam.text.org) the class views/entries/EntryDateDetail return 404 for not current site after click to read more. It happened because queryset = Entry.published.on_site() return None for current site with other id. After change to queryset = Entry.objects.all() everything is OK. Is it possible fix it?

    Thank you a lot.

    ICC Perimeter Wont fix 
    opened by yoza 17
  • New install on django-cms breaks site

    New install on django-cms breaks site

    I have installed zinnia as per the docs and the same way I always have done.

    I have synced and migrated my database and on standard pages not related to the blog, I get the error:

    "Caught DatabaseError while rendering: relation "zinnia_entry" does not exist LINE 1: ...te", "zinnia_entry"."content_placeholder_id" FROM "zinnia_en... ^"

    That relates to the "{% show_menu 0 100 100 100 %}" section of my templates.

    Now on the page where zinnia is aphooked, I get the error

    relation "zinnia_entry" does not exist LINE 1: SELECT COUNT(*) FROM "zinnia_entry" INNER JOIN "zinnia_entry...

    Using postgresql + south

    Database Documentation 
    opened by crooksey 17
  • Tagging not working on Python 3

    Tagging not working on Python 3

    Apparently Zinnia 0.14 was tagged but it doesn't work under Python 3 due to its dependency from django-tagging (see #281). If the solution is difficult, may I suggest stating that in the documentation?

    Improvement Documentation Tagging 
    opened by astrojuanlu 16
  • Caught AssertionError while rendering: latest()

    Caught AssertionError while rendering: latest()

    I am getting the following message. "TemplateSyntaxError at /admin/zinnia/ - Caught AssertionError while rendering: latest() requires either a field_name parameter or 'get_latest_by' in the model" Here is the Traceback: http://pastebin.com/2EqzPb84 I have installed Zinnia using "pip install -e git:/...", which means I have version 0.10. I get this error when I visit /en/admin/zinnia/. I tried executing "Entry.published.latest()" in the django shell and I get the same message.

    ICC 
    opened by justinm715 15
  • "django_content_type" does not exist

    I've got a fresh Django 1.8 installation, in a virtualenv with all deps successful. Running on Ubuntu 14.04.2 fwiw.

    The settings is pretty much default - apart from the db settings and the zinnia needs I've not added anything (actually, not true - Django 1.8 has no 'django.contrib.sites' in INSTALLED_APPS - needed to add that). 'django.contrib.contenttypes' is in INSTALLED_APPS by default.

    But I'm getting the error:

    django.db.utils.ProgrammingError: relation "django_content_type" does not exist

    ?

    Full output below:

    (df)datakid@coburg:~/www/df/df-site$ python manage.py migrate /home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django_comments/init.py:4: RemovedInDjango19Warning: django.utils.importlib will be removed in Django 1.9. from django.utils.importlib import import_module

    /home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django_comments/models.py:2: RemovedInDjango19Warning: django.contrib.contenttypes.generic is deprecated and will be removed in Django 1.9. Its contents have been moved to the fields, forms, and admin submodules of django.contrib.contenttypes. from django.contrib.contenttypes import generic

    /home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django_comments/models.py:46: RemovedInDjango19Warning: Model class django_comments.models.Comment doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class Comment(BaseCommentAbstractModel):

    /home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django_comments/models.py:165: RemovedInDjango19Warning: Model class django_comments.models.CommentFlag doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class CommentFlag(models.Model):

    /home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django_comments/forms.py:3: RemovedInDjango19Warning: The django.forms.util module has been renamed. Use django.forms.utils instead. from django.forms.util import ErrorDict

    System check identified some issues:

    WARNINGS: zinnia.Entry.categories: (fields.W340) null has no effect on ManyToManyField. zinnia.Entry.related: (fields.W340) null has no effect on ManyToManyField. Operations to perform: Synchronize unmigrated apps: staticfiles, mptt, messages, django_comments, tagging Apply all migrations: sessions, admin, sites, auth, contenttypes, zinnia Synchronizing apps without migrations: Creating tables... Creating table django_comments Creating table django_comment_flags Creating table tagging_tag Creating table tagging_taggeditem Running deferred SQL... Traceback (most recent call last): File "manage.py", line 10, in execute_from_command_line(sys.argv) File "/home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django/core/management/init.py", line 338, in execute_from_command_line utility.execute() File "/home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django/core/management/init.py", line 330, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv self.execute(_args, *_cmd_options) File "/home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute output = self.handle(_args, *_options) File "/home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 179, in handle created_models = self.sync_apps(connection, executor.loader.unmigrated_apps) File "/home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 317, in sync_apps cursor.execute(statement) File "/home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute return super(CursorDebugWrapper, self).execute(sql, params) File "/home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) File "/home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django/db/utils.py", line 97, in exit six.reraise(dj_exc_type, dj_exc_value, traceback) File "/home/datakid/.virtualenvs/df/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute return self.cursor.execute(sql) django.db.utils.ProgrammingError: relation "django_content_type" does not exist

    Tagging 
    opened by datakid 14
  • Added search form plugin

    Added search form plugin

    Hi,

    I forked your project to add more django-cms plugins like search form, calendar, etc. This way I can add them to my cms in a more modular fashion, instead of having to integrate the whole toolbar..

    This pull request adds a super simple plugin providing the search form.

    Best regards Mauro

    Improvement 
    opened by bianchimro 14
  • Bump pillow from 7.0.0 to 9.3.0 in /docs

    Bump pillow from 7.0.0 to 9.3.0 in /docs

    Bumps pillow from 7.0.0 to 9.3.0.

    Release notes

    Sourced from pillow's releases.

    9.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.3.0 (2022-10-29)

    • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

    • Initialize libtiff buffer when saving #6699 [radarhere]

    • Inline fname2char to fix memory leak #6329 [nulano]

    • Fix memory leaks related to text features #6330 [nulano]

    • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

    • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

    • Fixed set_variation_by_name offset #6445 [radarhere]

    • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

    • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

    • Added ExifTags enums #6630 [radarhere]

    • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

    • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

    • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

    • Added GPS TIFF tag info #6661 [radarhere]

    • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

    • Do not attempt normalization if mode is already normal #6644 [radarhere]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 0
  • Django 4 Support

    Django 4 Support

    What is the purpose of your pull request?

    • [ ] Bug fix
    • [x] New feature

    Proposed changes

    Warning

    Before submitting a pull request make sure you have:

    • [ ] Read the guidelines for contributing.
    • [ ] Wrote some tests.
    • [ ] Respected the PEP 8.
    opened by jackkinsella 0
  • docs: Fix a few typos

    docs: Fix a few typos

    There are small typos in:

    • docs/how-to/customize_look_and_feel.rst
    • docs/how-to/rewriting_entry_url.rst
    • docs/index.rst
    • docs/notes/faq.rst
    • zinnia/markups.py
    • zinnia/models/entry.py
    • zinnia/models_bases/entry.py
    • zinnia/static/zinnia/admin/dashboard/js/masonry.pkgd.js
    • zinnia/views/mixins/entry_protection.py

    Fixes:

    • Should read different rather than differents.
    • Should read upon rather than uppon.
    • Should read reimplementing rather than reimplemting.
    • Should read optionally rather than optionnally.
    • Should read multilingual rather than multiplingual.
    • Should read initialized rather than initalized.
    • Should read inheritance rather than inheritence.
    • Should read implementing rather than implemeting.
    • Should read implementation rather than implemention.

    Semi-automated pull request generated by https://github.com/timgates42/meticulous/blob/master/docs/NOTE.md

    opened by timgates42 0
  • Django Blog Zinnia 2022 / Django 4.0 Support PR

    Django Blog Zinnia 2022 / Django 4.0 Support PR

    This pull request brings this project up to date with the latest version of Django 4.0. Please go to DjangoBlogZinnia.com for documentation and other updates.

    opened by elarroba 0
  • Visit the New UPDATED Django Blog Zinnia Fork as of 2022

    Visit the New UPDATED Django Blog Zinnia Fork as of 2022

    opened by elarroba 5
Blog focused on skills enhancement and knowledge sharing. Tech Stack's: Vue.js, Django and Django-Ninja

Blog focused on skills enhancement and knowledge sharing. Tech Stack's: Vue.js, Django and Django-Ninja

Wanderson Fontes 2 Sep 21, 2022
A simple Blog Using Django Framework and Used IBM Cloud Services for Text Analysis and Text to Speech

ElhamBlog Cloud Computing Course first assignment. A simple Blog Using Django Framework and Used IBM Cloud Services for Text Analysis and Text to Spee

Elham Razi 5 Dec 6, 2022
Django web apps for managing schedules.

skdue Description Skdue is a web application that makes your life easier by helping you manage your schedule. With the ability which allows you to cre

Patkamon_Awai 1 Jun 30, 2022
Django-Audiofield is a simple app that allows Audio files upload, management and conversion to different audio format (mp3, wav & ogg), which also makes it easy to play audio files into your Django application.

Django-Audiofield Description: Django Audio Management Tools Maintainer: Areski Contributors: list of contributors Django-Audiofield is a simple app t

Areski Belaid 167 Nov 10, 2022
A Blog Management System Built with django

Blog Management System Backend use: Django Features Enhanced Ui

Vishal Goswami 1 Dec 6, 2021
Awesome Django Blog App

Awesome-Django-Blog-App Made with love django as the backend and Bootstrap as the frontend ! i hope that can help !! Project Title Django provides mul

ANAS NABIL 2 Feb 8, 2022
A blog app powered by python-django

Django_BlogApp This is a blog app powered by python-django Features Add and delete blog post View someone else blog Can add comment to that blog And o

Manish Jalui 1 Sep 12, 2022
Django With VueJS Blog App

django-blog-vue-app frontend Project setup yarn install Compiles and hot-reload

Flavien HUGS 2 Feb 4, 2022
Boilerplate Django Blog for production deployments!

CFE Django Blog THIS IS COMING SOON This is boilerplate code that you can use to learn how to bring Django into production. TLDR; This is definitely c

Coding For Entrepreneurs 26 Dec 9, 2022
A Django app that allows visitors to interact with your site as a guest user without requiring registration.

django-guest-user A Django app that allows visitors to interact with your site as a guest user without requiring registration. Largely inspired by dja

Julian Wachholz 21 Dec 17, 2022
Coltrane - A simple content site framework that harnesses the power of Django without the hassle.

coltrane A simple content site framework that harnesses the power of Django without the hassle. Features Can be a standalone static site or added to I

Adam Hill 58 Jan 2, 2023
A Django app for managing robots.txt files following the robots exclusion protocol

Django Robots This is a basic Django application to manage robots.txt files following the robots exclusion protocol, complementing the Django Sitemap

Jazzband 406 Dec 26, 2022
A app for managing lessons with Django

Course Notes A app for managing lessons with Django Some Ideas

Motahhar.Mokfi 6 Jan 28, 2022
A Django web application that allows you to be in the loop about everything happening in your neighborhood.

A Django web application that allows you to be in the loop about everything happening in your neighborhood. From contact information of different handyman to meeting announcements or even alerts.

Kennedy Ngugi Mwaura 3 Dec 11, 2022
PWA is a simple Django app to develope and deploy a Progressive Web Application.

PWA PWA is a simple Django app to develope and deploy a Progressive Web Application. Detailed documentation is in the "docs" directory. Quick start Ad

Nima 6 Dec 9, 2022
This is a simple Todo web application built Django (back-end) and React JS (front-end)

Django REST Todo app This is a simple Todo web application built with Django (back-end) and React JS (front-end). The project enables you to systemati

Maxim Mukhin 5 May 6, 2022
Django-environ allows you to utilize 12factor inspired environment variables to configure your Django application.

Django-environ django-environ allows you to use Twelve-factor methodology to configure your Django application with environment variables. import envi

Daniele Faraglia 2.7k Jan 7, 2023
Rosetta is a Django application that eases the translation process of your Django projects

Rosetta Rosetta is a Django application that facilitates the translation process of your Django projects. Because it doesn't export any models, Rosett

Marco Bonetti 909 Dec 26, 2022
django-dashing is a customisable, modular dashboard application framework for Django to visualize interesting data about your project. Inspired in the dashboard framework Dashing

django-dashing django-dashing is a customisable, modular dashboard application framework for Django to visualize interesting data about your project.

talPor Solutions 703 Dec 22, 2022