django-fluent / django-fluent-blogs Goto Github PK
View Code? Open in Web Editor NEWA blog engine with flexible block contents (based on django-fluent-contents)
Home Page: http://django-fluent.org/
License: Apache License 2.0
A blog engine with flexible block contents (based on django-fluent-contents)
Home Page: http://django-fluent.org/
License: Apache License 2.0
Hi,
I cannot install django fluent blogs in Django 1.8 / Python 3.
Is this because django categories does not support python 3?:
jazzband/django-categories#102
regards
I Receive the following error when editing an existing blog entry via the admin console:
MultiValueDictKeyError at /pvadmin/fluent_blogs/entry/3/
"u'placeholder-fs-0-id'"
Any idea why and how to fix?
Traceback...
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/pvadmin/fluent_blogs/entry/3/?language=en-gb
Django Version: 1.6.5
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'microgendb',
'home',
'pv',
'pv.maps',
'pv.report',
'faq',
'ckeditor',
'registration',
'linaro_django_pagination',
'djangobb_forum',
'haystack',
'django_messages',
'fluent_blogs',
'fluent_contents',
'fluent_contents.plugins.text',
'categories',
'categories.editor',
'django_wysiwyg',
'fluent_comments',
'django.contrib.comments',
'crispy_forms',
'taggit',
'taggit_autocomplete_modified',
'parler')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'linaro_django_pagination.middleware.PaginationMiddleware')
Traceback:
File "/home/jt/Desktop/virtual_envs/microgen/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
response = wrapped_callback(request, _callback_args, *_callback_kwargs)
return self.admin_site.admin_view(view)(_args, *_kwargs)
response = view_func(request, _args, *_kwargs)
response = view_func(request, _args, *_kwargs)
return view(request, _args, *_kwargs)
return bound_func(_args, *_kwargs)
response = view_func(request, _args, *_kwargs)
return func(self, _args2, *_kwargs2)
return func(_args, *_kwargs)
if all_valid(formsets) and form_validated:
if not formset.is_valid():
err = self.errors
self.full_clean()
form = self.forms[i]
res = instance.**dict**[self.func.**name**] = self.func(instance)
forms = [self._construct_form(i) for i in xrange(self.total_form_count())]
form = super(BaseInitialGenericInlineFormSet, self)._construct_form(i, **kwargs)
pk = self.data[pk_key]
raise MultiValueDictKeyError(repr(key))
Exception Type: MultiValueDictKeyError at /pvadmin/fluent_blogs/entry/3/
Exception Value: "u'placeholder-fs-0-id'"
After creating a project following the [Getting Started](TemplateSyntaxError at /admin/fluent_pages/page/add/) tutorial, I am trying to create a page of type "Blog module" or to create a blog entry.
I see:
TemplateSyntaxError at /admin/fluent_pages/page/add/
Cannot read {{ block.super }} for {% block staff_toolbar %}, the parent template doesn't have this block.
The exception is:
[14/May/2016 21:41:09] "POST /admin/fluent_pages/page/add/ HTTP/1.1" 302 0
ERROR: Internal Server Error: /admin/fluent_pages/page/add/
Traceback (most recent call last):
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 541, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 244, in inner
return view(request, *args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/polymorphic/admin.py", line 258, in add_view
return real_admin.add_view(request, form_url, extra_context)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1437, in add_view
return self.changeform_view(request, None, form_url, extra_context)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 67, in _wrapper
return bound_func(*args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 63, in bound_func
return func.__get__(self, type(self))(*args2, **kwargs2)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 184, in inner
return func(*args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1393, in changeform_view
formsets, inline_instances = self._create_formsets(request, form.instance, change=False)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1718, in _create_formsets
for FormSet, inline in self.get_formsets_with_inlines(*get_formsets_args):
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 697, in get_formsets_with_inlines
for inline in self.get_inline_instances(request, obj):
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/fluent_contents/admin/placeholdereditor.py", line 188, in get_inline_instances
inlinetypes = self.get_extra_inlines()
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/fluent_contents/admin/placeholdereditor.py", line 200, in get_extra_inlines
return [self.placeholder_inline] + get_content_item_inlines(plugins=self.get_all_allowed_plugins())
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/fluent_pages/integration/fluent_contents/admin.py", line 86, in get_all_allowed_plugins
slots = [placeholder.slot for placeholder in get_template_placeholder_data(template)]
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/fluent_contents/analyzer.py", line 24, in get_template_placeholder_data
nodes = get_node_instances(template, PagePlaceholderNode)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/template_analyzer/djangoanalyzer.py", line 243, in get_node_instances
return _scan_nodes(nodelist, context, instances)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/template_analyzer/djangoanalyzer.py", line 158, in _scan_nodes
results += _extend_nodelist(node, context, instance_types)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/template_analyzer/djangoanalyzer.py", line 114, in _extend_nodelist
results += _scan_nodes(block.nodelist, context, instance_types, block, ignore_blocks=all_block_names)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/template_analyzer/djangoanalyzer.py", line 167, in _scan_nodes
current_block.name
TemplateSyntaxError: Cannot read {{ block.super }} for {% block staff_toolbar %}, the parent template doesn't have this block.
Internal Server Error: /admin/fluent_pages/page/add/
Traceback (most recent call last):
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 541, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 244, in inner
return view(request, *args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/polymorphic/admin.py", line 258, in add_view
return real_admin.add_view(request, form_url, extra_context)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1437, in add_view
return self.changeform_view(request, None, form_url, extra_context)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 67, in _wrapper
return bound_func(*args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 63, in bound_func
return func.__get__(self, type(self))(*args2, **kwargs2)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/utils/decorators.py", line 184, in inner
return func(*args, **kwargs)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1393, in changeform_view
formsets, inline_instances = self._create_formsets(request, form.instance, change=False)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1718, in _create_formsets
for FormSet, inline in self.get_formsets_with_inlines(*get_formsets_args):
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/django/contrib/admin/options.py", line 697, in get_formsets_with_inlines
for inline in self.get_inline_instances(request, obj):
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/fluent_contents/admin/placeholdereditor.py", line 188, in get_inline_instances
inlinetypes = self.get_extra_inlines()
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/fluent_contents/admin/placeholdereditor.py", line 200, in get_extra_inlines
return [self.placeholder_inline] + get_content_item_inlines(plugins=self.get_all_allowed_plugins())
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/fluent_pages/integration/fluent_contents/admin.py", line 86, in get_all_allowed_plugins
slots = [placeholder.slot for placeholder in get_template_placeholder_data(template)]
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/fluent_contents/analyzer.py", line 24, in get_template_placeholder_data
nodes = get_node_instances(template, PagePlaceholderNode)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/template_analyzer/djangoanalyzer.py", line 243, in get_node_instances
return _scan_nodes(nodelist, context, instances)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/template_analyzer/djangoanalyzer.py", line 158, in _scan_nodes
results += _extend_nodelist(node, context, instance_types)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/template_analyzer/djangoanalyzer.py", line 114, in _extend_nodelist
results += _scan_nodes(block.nodelist, context, instance_types, block, ignore_blocks=all_block_names)
File "/home/jjmontes/git/cubesviewer-server/x/env/local/lib/python2.7/site-packages/template_analyzer/djangoanalyzer.py", line 167, in _scan_nodes
current_block.name
TemplateSyntaxError: Cannot read {{ block.super }} for {% block staff_toolbar %}, the parent template doesn't have this block.
[14/May/2016 21:41:09] "GET /admin/fluent_pages/page/add/?ct_id=9 HTTP/1.1" 500 185825
Appears to have installed all properly
http://beta.gustafsonandassociates.com/blog/
but when i goto the admin to add a new entry I get the following exception
Environment:
Request Method: GET
Request URL: http://beta.gustafsonandassociates.com/admin/fluent_blogs/entry/add/
Django Version: 1.6
Python Version: 2.6.8
Installed Applications:
['django.contrib.sites',
'django.contrib.contenttypes',
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.admin',
'django.contrib.admindocs',
'django.contrib.flatpages',
'django.contrib.sitemaps',
'django.contrib.redirects',
'apps.utils',
'apps.django_assets',
'apps.links',
'apps.staff',
'apps.appraisal_fees',
'apps.contact_list',
'apps.bids',
'apps.feedback',
'apps.office',
'apps.nav_menu',
'fluent_blogs',
'fluent_contents',
'fluent_contents.plugins.text',
'categories',
'categories.editor',
'django_wysiwyg',
'django.contrib.comments',
'taggit',
'taggit_autocomplete_modified']
Installed Middleware:
('django.middleware.gzip.GZipMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'django.contrib.redirects.middleware.RedirectFallbackMiddleware')
Traceback:
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
114. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/contrib/admin/options.py" in wrapper
430. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/utils/decorators.py" in _wrapped_view
99. response = view_func(request, *args, **kwargs)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
52. response = view_func(request, *args, **kwargs)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/contrib/admin/sites.py" in inner
198. return view(request, *args, **kwargs)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/utils/decorators.py" in _wrapper
29. return bound_func(*args, **kwargs)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/utils/decorators.py" in _wrapped_view
99. response = view_func(request, *args, **kwargs)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/utils/decorators.py" in bound_func
25. return func(self, *args2, **kwargs2)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/db/transaction.py" in inner
339. return func(*args, **kwargs)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/contrib/admin/options.py" in add_view
1106. ModelForm = self.get_form(request)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/parler/admin.py" in get_form
253. form_class = super(TranslatableAdmin, self).get_form(request, obj, **kwargs)
File "/home/digitalxero/sites/bgna.digitalxero.net/lib/python2.6/site-packages/django/contrib/admin/options.py" in get_form
529. % (e, self.__class__.__name__))
Exception Type: FieldError at /admin/fluent_blogs/entry/add/
Exception Value: Unknown field(s) (contents) specified for Entry. Check fields/fieldsets/exclude attributes of class EntryAdmin.
Django version is 1.5.4
django-fluent-blogs version is 0.9.6
Works fine with DEBUG=True, but with DEBUG=False there are ImportErrors. (I gather Django imports things slightly differently in these two cases.):
[25/Sep/2013 08:40:36] ERROR [django.request:212] Internal Server Error: /
Traceback (most recent call last):
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 103, in get_response
resolver_match = resolver.resolve(request.path_info)
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 319, in resolve
for pattern in self.url_patterns:
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 347, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 342, in urlconf_module
self._urlconf_module = import_module(self.urlconf_name)
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "./ccnew/urls.py", line 10, in <module>
admin.autodiscover()
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 29, in autodiscover
import_module('%s.admin' % app)
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/fluent_blogs/admin/__init__.py", line 2, in <module>
from fluent_blogs.admin.entryadmin import AbstractEntryBaseAdmin, EntryAdmin, AbstractEntryBaseAdminForm
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/fluent_blogs/admin/entryadmin.py", line 10, in <module>
from fluent_blogs.base_models import AbstractEntryBase
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/fluent_blogs/base_models.py", line 9, in <module>
from fluent_blogs.models.managers import EntryManager
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/fluent_blogs/models/__init__.py", line 1, in <module>
from .db import Entry, AbstractEntry, get_entry_model, get_category_model
File "/home/al/venvs/cc/local/lib/python2.7/site-packages/fluent_blogs/models/db.py", line 4, in <module>
from fluent_blogs.base_models import AbstractEntry, CommentsEntryMixin
ImportError: cannot import name AbstractEntry
Django no longer includes SITE_ID
in the default settings.py
and no longer adds django.contrib.sites
to INSTALLED_APPS
.
If it is actually required by fluent-blogs
, adding django.contrib.sites
to INSTALLED_APPS
and defining SITE_ID
should be mentioned in README.rst
.
A quick search of the source reveals that this might also impact fluent-contents
and fluent-pages
. But for fluent-blogs
it causes any management command to crash with a traceback.
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/core/management/base.py", line 415, in handle
return self.handle_noargs(**options)
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/core/management/commands/shell.py", line 70, in handle_noargs
get_models()
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/db/models/loading.py", line 232, in get_models
self._populate()
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/db/models/loading.py", line 75, in _populate
self.load_app(app_name, True)
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/db/models/loading.py", line 99, in load_app
models = import_module('%s.models' % app_name)
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/Users/tailee/Projects/django-fluent-blogs/fluent_blogs/models/__init__.py", line 1, in <module>
from .db import Entry, Entry_Translation, get_entry_model, get_category_model
File "/Users/tailee/Projects/django-fluent-blogs/fluent_blogs/models/db.py", line 5, in <module>
from fluent_blogs.base_models import CommentsEntryMixin, AbstractTranslatableEntry, AbstractTranslatedFieldsEntry
File "/Users/tailee/Projects/django-fluent-blogs/fluent_blogs/base_models.py", line 9, in <module>
from fluent_blogs.models.managers import EntryManager, TranslatableEntryManager
File "/Users/tailee/Projects/django-fluent-blogs/fluent_blogs/models/managers.py", line 8, in <module>
from fluent_blogs import appsettings
File "/Users/tailee/Projects/django-fluent-blogs/fluent_blogs/appsettings.py", line 65, in <module>
if len(FLUENT_BLOGS_LANGUAGES.get(settings.SITE_ID, ())) > 1:
File "/Users/tailee/.virtualenvs/fluent-demo/lib/python2.7/site-packages/django/conf/__init__.py", line 55, in __getattr__
return getattr(self._wrapped, name)
AttributeError: 'Settings' object has no attribute 'SITE_ID'
That crash is an easy fix with getattr(settings, 'SITE_ID, None)
, but I see that SITE_ID
is also used elsewhere in the fluents-blog
source.
The tags field is optional, but now the migrations may alert that this field needs to be migrated.
Find a way to either ignore it, or dynamically insert it in the migrations when needed.
When the ContentsEntryMixin
is used in another model, Django raises an error that the related_name
for the contents
field is already used. This likely needs to be fixed in https://github.com/edoburu/django-fluent-contents and it's visible in the blogs app.
Like WordPress, it would make much more sense to display the categories as a list of checkboxes
When a tag is only used in an entry that is not published, it will still be displayed in the list of tags. The tag page returns a 404.
The tag should not be displayed in the get_tags
.
Is django-fluent-pages a requirement? After a fresh install, there appears to be no way to add a blog entry. Attempting to add an entry via /admin
gives TemplateDoesNotExist at /admin/fluent_blogs/entry/add/
. Perhaps the docs/readme should clarify what is necessary here. I'd quite like to have a standalone blog app, with just one entry content type, archives, tags etc, and without extended cms features.
As per the release notes, https://docs.djangoproject.com/en/1.5/releases/1.5/#context-in-year-archive-class-based-views, the year
should be changed in Django 1.5
For compatibility, this will have to happen via a template filter so Django 1.3/1.4 remains supported
Do you have any documentation on how to get the fluent blogs up and running with parler translations? I currently got parler translations working with fluent_pages but the blogs seem to need a bit more tweaking to get them to work.
The documetation in README.rst
is getting huge. Better get sphinx documentation on readthedocs ;)
Also worth including:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.