2015-01-08 4 views
1

Я пытаюсь отладить эту проблему, но ни один из существующих ответов не помогает. Когда я запускаю сервер Django, я вижу:Объект 'module' не имеет атрибута «OSMGeoAdmin» в Mac OS X 10

'module' object has no attribute 'OSMGeoAdmin'

Я знаю this question это та же ошибка, но django.contrib.gis.admin импорта правильно и я разрабатываю на Mac, а не Windows. У меня установлен gdal вместе с geos. Я запустил это приложение несколько раз и раньше не видел ошибку. GDAL установлен и настроен правильно, с правильными настройками. Geos установлен. Я очистил свой виртуальный env, начал работу и переустановил, но безрезультатно.

Разочаровывав, я смог заставить приложение работать правильно, пока не начал устранять проблему с помощью эскиза sorl-thumbnail. Глядя на мою историю Баш, я пытаюсь установить jpegsrc (вместе с PIL, как pip install PIL --allow-unverified PIL --allow-all-external), как это:

curl -O http://www.ijg.org/files/jpegsrc.v8c.tar.gz 
tar zxvf jpegsrc.v8c.tar.gz 
cd jpeg-8c/ 
./configure 
make 
sudo make install 

Спасибо за любую помощь вы в состоянии обеспечить.

Полный Traceback:

Request Method: GET 
    Request URL: http://0.0.0.0:8003/ 

    Django Version: 1.5.4 
    Python Version: 2.7.5 
    Installed Applications: 
    ('django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'grappelli', 
    'django.contrib.admin', 
    'django.contrib.markup', 
    'django.contrib.humanize', 
    'django.contrib.gis', 
    'south', 
    'parks', 
    'sorl.thumbnail') 
    Installed Middleware: 
    ('django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware') 


    Traceback: 
    File "/Users/mapcuser/.venvs/bostongreenmap/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
     103.      resolver_match = resolver.resolve(request.path_info) 
    File "/Users/mapcuser/.venvs/bostongreenmap/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve 
     319.    for pattern in self.url_patterns: 
    File "/Users/mapcuser/.venvs/bostongreenmap/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns 
     347.   patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
    File "/Users/mapcuser/.venvs/bostongreenmap/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module 
     342.    self._urlconf_module = import_module(self.urlconf_name) 
    File "/Users/mapcuser/.venvs/bostongreenmap/lib/python2.7/site-packages/django/utils/importlib.py" in import_module 
     35.  __import__(name) 
    File "/Volumes/public/DataServices/Code/Django/BostonGreen/bostongreenmap/bostongreenmap/urls.py" in <module> 
     9. admin.autodiscover() 
    File "/Users/mapcuser/.venvs/bostongreenmap/lib/python2.7/site-packages/django/contrib/admin/__init__.py" in autodiscover 
     29.    import_module('%s.admin' % app) 
    File "/Users/mapcuser/.venvs/bostongreenmap/lib/python2.7/site-packages/django/utils/importlib.py" in import_module 
     35.  __import__(name) 
    File "/Volumes/public/DataServices/Code/Django/BostonGreen/bostongreenmap/parks/admin.py" in <module> 
     13. class ParkAdmin(admin.OSMGeoAdmin): 

    Exception Type: AttributeError at/
    Exception Value: 'module' object has no attribute 'OSMGeoAdmin' 

admin.py:

  from django.contrib.gis import admin 

      from parks.models import Facility, Neighborhood, Park, Activity, Event, Parktype, Parkowner, Parkimage, Facilitytype, Friendsgroup, Story 
      from sorl.thumbnail import default 
      from django.conf import settings 

      # default GeoAdmin overloads 
      admin.GeoModelAdmin.default_lon = -7912100 
      admin.GeoModelAdmin.default_lat = 5210000 
      admin.GeoModelAdmin.default_zoom = 11 


      class ParkAdmin(admin.OSMGeoAdmin): 
       list_display = ['name', 'parkowner' ] 
       list_filter = ('neighborhoods',) 
       search_fields = ['name'] 
       exclude = ('slug',) 

       def park_image_thumb(self, obj): 
        if obj.image: 
         thumb = default.backend.get_thumbnail(obj.image.file, settings.ADMIN_THUMBS_SIZE) 
         return u'<img width="%s" src="%s" />' % (thumb.width, thumb.url) 
        else: 
         return "No Image" 
       park_image_thumb.short_description = 'Park Image' 
       park_image_thumb.allow_tags = True 

       readonly_fields = ['park_image_thumb',] 



      class FacilityAdmin(admin.OSMGeoAdmin): 
       search_fields = ['name', 'park__name'] 
       exclude = ('park',) 
       list_display = ['pk', 'name', 'activity_string', 'facilitytype', ] 
       list_editable = ['name', 'facilitytype', ] 
       list_filter = ('activity',) 


      class LookupAdmin(admin.ModelAdmin): 

       def ic(self, obj): 
        if hasattr(obj, 'icon'): 
         thumb = default.backend.get_thumbnail(obj.icon.file,"24") 
         return u'<img width="%s" src="%s" />' % (thumb.width, thumb.url) 
        else: 
         return "" 

       ic.short_description = 'Park Image' 
       ic.allow_tags = True 

       list_display = ['id', 'name','ic' ] 
       list_editable = ['name', ] 


      class ParkimageAdmin(admin.ModelAdmin): 
       list_display = ['pk', 'thumbnail', 'caption', 'get_parks_string' ] 
       list_editable = ['caption', ] 
       search_fields = ['caption', ] 
       readonly_fields = ('thumbnail',) 
       list_per_page = 20 


      #admin.site.register(Greenspace, admin.OSMGeoAdmin) 
      admin.site.register(Facility, FacilityAdmin) 
      admin.site.register(Facilitytype, LookupAdmin) 
      admin.site.register(Park, ParkAdmin) 
      admin.site.register(Parktype, LookupAdmin) 
      admin.site.register(Parkowner, LookupAdmin) 
      admin.site.register(Parkimage, ParkimageAdmin) 
      admin.site.register(Neighborhood, admin.OSMGeoAdmin) 
      admin.site.register(Activity, LookupAdmin) 
      admin.site.register(Event) 
      admin.site.register(Friendsgroup) 
      admin.site.register(Story) 
+0

Вы можете показать содержимое of /Volumes/public/DataServices/Code/Django/BostonGreen/bostongreenmap/parks/admin.py. – garnertb

+0

@garnertb привет, я пошел вперед и добавил содержимое admin.py в исходное сообщение. Спасибо! – allthesignals

ответ

0

Вы должны указать класс атрибутов перегрузкам в каждом подклассе, например так:

class FacilityAdmin(admin.OSMGeoAdmin): 
    default_lon = -7912100 
    default_lat = 5210000 
    default_zoom = 11 

    search_fields = ['name', 'park__name'] 
    exclude = ('park',) 
    list_display = ['pk', 'name', 'activity_string', 'facilitytype', ] 
    list_editable = ['name', 'facilitytype', ] 
    list_filter = ('activity',)