python - coercing to Unicode: need string or buffer, instancemethod found after upgrading django from 1.2.3 to 1.6.5 -
i have django app version 1.2.3 , updated 1.6.5 , app working fine, admin url not working , facing below error when accessed localhost:8000/admin/
traceback
traceback: file "/users/user/.envs/proj/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 112. response = wrapped_callback(request, *callback_args, **callback_kwargs) file "/users/user/.envs/proj/lib/python2.7/site-packages/django/contrib/admin/sites.py" in wrapper 215. homecoming self.admin_view(view, cacheable)(*args, **kwargs) file "/users/user/.envs/proj/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view 99. response = view_func(request, *args, **kwargs) file "/users/user/.envs/proj/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 52. response = view_func(request, *args, **kwargs) file "/users/user/.envs/proj/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner 198. homecoming view(request, *args, **kwargs) file "/users/user/.envs/proj/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 52. response = view_func(request, *args, **kwargs) file "/users/user/.envs/proj/lib/python2.7/site-packages/django/contrib/admin/sites.py" in index 358. model_dict['admin_url'] = reverse('admin:%s_%s_changelist' % info, current_app=self.name) file "/users/user/.envs/proj/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse 503. app_list = resolver.app_dict[ns] file "/users/user/.envs/proj/lib/python2.7/site-packages/django/core/urlresolvers.py" in app_dict 329. self._populate() file "/users/user/.envs/proj/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate 290. name in pattern.reverse_dict: file "/users/user/.envs/proj/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse_dict 315. self._populate() file "/users/user/.envs/proj/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate 278. lookup_str = callback.__module__ + "." + callback.__name__ exception type: typeerror @ /admin/ exception value: coercing unicode: need string or buffer, instancemethod found
and when shifted django version 1.5.3 working without error, wrong latest version, need changes unicode settings ?
edit:
urls.py
from django.conf.urls import * django.conf import settings django.contrib import admin django.views.generic import templateview feeds.sitemap import sitemap admin.autodiscover() urlpatterns = patterns('', # core website pages (r'^$', 'core.views.homepage'), # site map (r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemap}), # admin pages (r'^admin/', include(admin.site.urls)), (r'^search/', include('search.urls')), ) # static content code, used development import os.path static = os.path.join( os.path.dirname(__file__), 'media' ) new_static = os.path.join( os.path.dirname(__file__), 'new_media' ) if settings.debug: urlpatterns += patterns('', (r'^media/(?p<path>.*)$', 'django.views.static.serve', {'document_root': static}), (r'^new_media/(?p<path>.*)$', 'django.views.static.serve', {'document_root': new_static}), )
search/urls.py
from django.conf.urls import * search.views import sitesearch urlpatterns = patterns('search.views', url(r'^$', sitesearch(), name='site_search'), )
search/views.py
from haystack.views import searchview class sitesearch(searchview): def get_results(self): model_search_form = self.form_class(self.request.get) model_search_form.is_valid() models = model_search_form.get_models() if self.query: search_results = self.form.search() if len(models) == 1 , models[0].__name__ == 'press_releases': search_results = search_results.order_by('-date') homecoming search_results homecoming []
your exception caused older django-haystack release. upgrade it, incompatible django 1.6.
in version 1.0 @ least searchview
class defines __name__
method, goes against normal utilize in python attribute string instead.
python unicode django-1.6
No comments:
Post a Comment