django-blog-zinnia / cmsplugin-zinnia

Bridge between django-blog-zinnia and django-cms
BSD 3-Clause "New" or "Revised" License
53 stars 46 forks source link

Uninformative assertionerror on new install #25

Closed nagyv closed 10 years ago

nagyv commented 10 years ago

Hi,

I've the following virtualenv:

$ pip freeze -l
Django==1.5.5
Jinja2==2.7.2
MarkupSafe==0.18
Pillow==2.0.0
Pygments==1.6
South==0.8.1
Sphinx==1.0.7
beautifulsoup4==4.3.2
cmsplugin-filer==0.9.5
cmsplugin-zinnia==0.5.1
distribute==0.6.24
django-appconf==0.6
django-blog-zinnia==0.13
django-classy-tags==0.4
django-cms==2.4.3
-e git+https://github.com/RichardOtvos/django-cms-contactform@40980ea743ad7534d4d0c3dbb19035b4d643158e#egg=django_cms_contactform-dev
django-compressor==1.3
django-debug-toolbar==1.0.1
django-extensions==1.3.3
django-filer==0.9.5
django-model-utils==2.0
django-mptt==0.5.2
-e git://github.com/jbalogh/django-nose.git@4ffb4fab18957d7c913d7f132dcd27b50a30f447#egg=django_nose-dev
django-polymorphic==0.5.3
django-reversion==1.7
django-sekizai==0.7
django-sha2==0.4
django-tagging==0.3.1
django-xmlrpc==0.1.5
docutils==0.11
easy-thumbnails==1.4
html5lib==1.0b1
ipdb==0.8
ipython==1.1.0
mock==0.7.2
nose==1.0.0
psycopg2==2.5.2
py-bcrypt==0.4
pyparsing==2.0.1
pytz==2013.9
six==1.3.0
sqlparse==0.1.10

Running syncdb --noinput --migrate throws an AssertionError. As commenting out cmsplugin_zinnia in INSTALLED_APPS avoids the error, I guess it's due to the plugin. Could someone give any extra info about this issue?

Fantomas42 commented 10 years ago

Can I have a traceback of the AssertionError ?

nagyv commented 10 years ago

actually, it was not easy to get, but here it is: this is ipdb while running syncdb.

/vagrant/.venv-cms/local/lib/python2.7/site-packages/zinnia/models/author.py(11)<module>()
      9 
     10 @python_2_unicode_compatible
1--> 11 class Author(get_user_model()):
     12     """
     13     Proxy model around :class:`django.contrib.auth.models.get_user_model`.

  /vagrant/.venv-cms/local/lib/python2.7/site-packages/django/db/models/base.py(134)__new__()
    132                 # Proxy classes do inherit parent's default manager, if none is
    133                 # set explicitly.
2-> 134                 new_class._default_manager = new_class._default_manager._copy_to_model(new_class)
    135                 new_class._base_manager = new_class._base_manager._copy_to_model(new_class)
    136 

> /vagrant/.venv-cms/local/lib/python2.7/site-packages/django/db/models/manager.py(95)_copy_to_model()
     93         abstract base class).
     94         """
---> 95         assert issubclass(model, self.model)
     96         mgr = copy.copy(self)
     97         mgr._set_creation_counter()

The assertion is raised at line 95 of manager.py. The variables are

ipdb> model, self.model
(<class 'zinnia.models.author.Author'>, <class 'zinnia.models.Author.Author'>)
nagyv commented 10 years ago

On IRC, I was asked for the original traceback:

Traceback (most recent call last):
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/django/core/management/base.py", line 222, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/django/core/management/base.py", line 254, in execute
    self.validate()
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/django/core/management/base.py", line 280, in validate
    num_errors = get_validation_errors(s, app)
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/django/core/management/validation.py", line 35, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/django/db/models/loading.py", line 166, in get_app_errors
    self._populate()
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/django/db/models/loading.py", line 72, in _populate
    self.load_app(app_name, True)
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/django/db/models/loading.py", line 96, in load_app
    models = import_module('.models', app_name)
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/zinnia/models/__init__.py", line 3, in <module>
    from zinnia.models.author import Author
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/zinnia/models/author.py", line 11, in <module>
    class Author(get_user_model()):
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/django/db/models/base.py", line 134, in __new__
    new_class._default_manager = new_class._default_manager._copy_to_model(new_class)
  File "/vagrant/.venv-cms/local/lib/python2.7/site-packages/django/db/models/manager.py", line 95, in _copy_to_model
    assert issubclass(model, self.model)
AssertionError
nagyv commented 10 years ago

This was solved in 0.14 by moving the EntryPublishedManager into a separate abstract model.