Opened 8 years ago
Last modified 8 years ago
#26939 closed Bug
sitemaps crashes with "isinstance() arg 2 must be a class, type, or tuple of classes and types" — at Version 2
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 (2)
comment:1 by , 8 years ago
Description: | modified (diff) |
---|
comment:2 by , 8 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 |
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.