#26939: Django 1.9.8 Sitemaps is broken due to "isinstance() arg 2 must be a
class,
type, or tuple of classes and types"
-------------------------------+--------------------------------------
Reporter: xuchen81 | Owner: nobody
Type: Bug | Status: new
Component: Uncategorized | Version: 1.9
Severity: Normal | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------
Changes (by xuchen81):
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Old description:
> I am using Django version 1.9.8, and mezzanine version 4.1.0.
> The following code failed:
> {{{
> from mezzanine.core.sitemaps import DisplayableSitemap
> sitemaps = {"sitemaps": {"displayable": DisplayableSitemap, 'views':
> SwiftypeSitemap}}
> urlpatterns += patterns("django.contrib.sitemaps.views",
> ("^sitemap\.xml$", "sitemap", sitemaps))
> }}}
> The trace back:
> {{{
> TypeError at /sitemap.xml
> isinstance() arg 2 must be a class, type, or tuple of classes and types
> Request Method: GET
> Request URL: https://xxxxxxxxxx.com:8787/sitemap.xml
> Django Version: 1.9.8
> Exception Type: TypeError
> Exception Value:
> isinstance() arg 2 must be a class, type, or tuple of classes and types
> Exception Location:
> /srv/xxxxxxxxxx/virtualenvs/corpsite/local/lib/python2.7/site-
> packages/django/db/models/fields/related.py in get_default, line 908
> Python Executable: /srv/appdynamics/virtualenvs/corpsite/bin/uwsgi
> Python Version: 2.7.6
> Python Path:
> ['.',
> '',
> '/srv/xxxxxxxxxx/virtualenvs/corpsite/src/supervisor',
> '/srv/xxxxxxxxxx/virtualenvs/corpsite/lib/python2.7',
> '/srv/xxxxxxxxxx/virtualenvs/corpsite/lib/python2.7/plat-x86_64-linux-
> gnu',
> '/srv/xxxxxxxxxx/virtualenvs/corpsite/lib/python2.7/lib-tk',
> '/srv/xxxxxxxxxx/virtualenvs/corpsite/lib/python2.7/lib-old',
> '/srv/xxxxxxxxxx/virtualenvs/corpsite/lib/python2.7/lib-dynload',
> '/usr/lib/python2.7',
> '/usr/lib/python2.7/plat-x86_64-linux-gnu',
> '/usr/lib/python2.7/lib-tk',
> '/srv/xxxxxxxxxx/virtualenvs/corpsite/local/lib/python2.7/site-
> packages',
> '/srv/xxxxxxxxxx/www/private']
> Server time: Fri, 22 Jul 2016 17:48:22 -0700
> ...
> ...
>
> /srv/xxxxxxxxxx/virtualenvs/corpsite/local/lib/python2.7/site-
> packages/django/db/models/fields/related.py in get_default
> if isinstance(field_default, self.remote_field.model): ...
> ▶ Local vars
> Variable Value
> self: <django.db.models.fields.related.ForeignKey: site>
> field_default: None
> }}}
>
> The problem is here: self.remote_field.model is not a type of class, but
> unicode.
New description:
I am using Django version 1.9.8, and mezzanine version 4.1.0.
The following code failed:
{{{
from mezzanine.core.sitemaps import DisplayableSitemap
sitemaps = {"sitemaps": {"displayable": DisplayableSitemap, 'views':
SwiftypeSitemap}}
urlpatterns += patterns("django.contrib.sitemaps.views",
("^sitemap\.xml$", "sitemap", sitemaps))
}}}
The trace back:
{{{
TypeError at /sitemap.xml
isinstance() arg 2 must be a class, type, or tuple of classes and types
Request Method: GET
Request URL: https://xxxxxxxxxx.com:8787/sitemap.xml
Django Version: 1.9.8
Exception Type: TypeError
Exception Value:
isinstance() arg 2 must be a class, type, or tuple of classes and types
Exception Location:
/srv/xxxxxxxxxx/virtualenvs/corpsite/local/lib/python2.7/site-
packages/django/db/models/fields/related.py in get_default, line 908
Python Executable: /srv/xxxxxxxxxx/virtualenvs/corpsite/bin/uwsgi
Python Version: 2.7.6
Python Path:
['.',
'',
'/srv/xxxxxxxxxx/virtualenvs/corpsite/src/supervisor',
'/srv/xxxxxxxxxx/virtualenvs/corpsite/lib/python2.7',
'/srv/xxxxxxxxxx/virtualenvs/corpsite/lib/python2.7/plat-x86_64-linux-
gnu',
'/srv/xxxxxxxxxx/virtualenvs/corpsite/lib/python2.7/lib-tk',
'/srv/xxxxxxxxxx/virtualenvs/corpsite/lib/python2.7/lib-old',
'/srv/xxxxxxxxxx/virtualenvs/corpsite/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/srv/xxxxxxxxxx/virtualenvs/corpsite/local/lib/python2.7/site-packages',
'/srv/xxxxxxxxxx/www/private']
Server time: Fri, 22 Jul 2016 17:48:22 -0700
...
...
/srv/xxxxxxxxxx/virtualenvs/corpsite/local/lib/python2.7/site-
packages/django/db/models/fields/related.py in get_default
if isinstance(field_default, self.remote_field.model): ...
▶ Local vars
Variable Value
self: <django.db.models.fields.related.ForeignKey: site>
field_default: None
}}}
The problem is here: self.remote_field.model is not a type of class, but
unicode.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/26939#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/066.a5b77e88cb144c4119bef1f72a3de6df%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.