Opened 9 years ago
Closed 9 years ago
#26939 closed Bug (invalid)
sitemaps crashes with "isinstance() arg 2 must be a class, type, or tuple of classes and types"
| Reported by: | Chen Xu | Owned by: | nobody |
|---|---|---|---|
| Component: | contrib.sitemaps | Version: | 1.9 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I am using Django version 1.9.8, and mezzanine version 4.1.0.
The following code failed:
from django.contrib.sitemaps.views import sitemap
from mezzanine.core.sitemaps import DisplayableSitemap
sitemaps = {"sitemaps": {"displayable": DisplayableSitemap}}
urlpatterns += [url("^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.
Change History (4)
comment:1 by , 9 years ago
| Description: | modified (diff) |
|---|
comment:2 by , 9 years ago
| Component: | Uncategorized → contrib.sitemaps |
|---|---|
| Description: | modified (diff) |
| Summary: | Django 1.9.8 Sitemaps is broken due to "isinstance() arg 2 must be a class, type, or tuple of classes and types" → sitemaps crashes with "isinstance() arg 2 must be a class, type, or tuple of classes and types" |
| Triage Stage: | Unreviewed → Accepted |
comment:3 by , 9 years ago
I found out this is a known bug in mezzanine, not a django bug. We can close it here.
comment:4 by , 9 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Seems to be a regression in 1.9 (the sample code works in 1.8) although I've having trouble bisecting it due to other crashes in mezzanine at various points in Django's history. If you could create a minimal project that reproduces the problem without mezzazine, that would be ideal as we'll need a regression test anyway.