我正在一個Django的安裝與GeoDjango內置,並創造了這樣一個模型:GeoDjango內置 - 強迫爲Unicode:需要字符串或緩衝區,LineString的發現
#models.py from django.contrib.gis.db import models class Route(models.Model): name = models.CharField(max_length=100) path = models.LineStringField(srid=4326) objects = models.GeoManager() def __unicode__(self): return str(self.path)
這個工作,我能創造在終端內的線串對象,並且我承認我從來沒有讓他們真正顯示,但那更多是因爲我的顯示還沒有完全完成。
但是後來我看到了一個截屏視頻,雖然從2008年開始,geodjango的創建者 - 布蘭恩,他在管理頁面上獲得了一個開放式的開放式街道地圖接口,我按照他的說明添加了一個帶有OSMGeoAdmin結尾的admin.py像這樣:
#admin.py from django.contrib.gis import admin from myproject.georoute.models import Route class RouteAdmin(admin.OSMGeoAdmin): search_fields = ('name',) admin.site.register(Route, RouteAdmin)
這也是做工精細 - 我得到的地圖上,我可以得出一個線串,但是當我試圖挽救它 - 或者,如果我已經創建了一個路由對象,並嘗試查看adminpage上的路由列表 - 我收到一個錯誤。更具體地說,「強制轉換爲Unicode:需要字符串或緩衝區,LineString找到」並且據我所知,這來自於嘗試對沒有__ unicode__函數(或類似的東西)的對象進行unicode編碼。
所以我檢查了線串對象的定義,並沒有unicode函數,所以我做了一個微弱的嘗試添加一個,沒有運氣。
因此,我在這裏,難倒了。任何人都知道我可以如何解決這個問題?
編輯 堆棧跟蹤:
Environment: Request Method: POST Request URL: http://storm.webfactional.com/admin/georoute/route/add/ Django Version: 1.2.1 Python Version: 2.6.5 Installed Applications: ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.gis', 'django.contrib.admin', 'registration', 'georoute'] 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 "/home/storm/webapps/django/lib/python2.6/django/core/handlers/base.py" in get_response 100. response = callback(request, *callback_args, **callback_kwargs) File "/home/storm/webapps/django/lib/python2.6/django/contrib/admin/options.py" in wrapper 239. return self.admin_site.admin_view(view)(*args, **kwargs) File "/home/storm/webapps/django/lib/python2.6/django/utils/decorators.py" in _wrapped_view 76. response = view_func(request, *args, **kwargs) File "/home/storm/webapps/django/lib/python2.6/django/views/decorators/cache.py" in _wrapped_view_func 69. response = view_func(request, *args, **kwargs) File "/home/storm/webapps/django/lib/python2.6/django/contrib/admin/sites.py" in inner 190. return view(request, *args, **kwargs) File "/home/storm/webapps/django/lib/python2.6/django/utils/decorators.py" in _wrapper 21. return decorator(bound_func)(*args, **kwargs) File "/home/storm/webapps/django/lib/python2.6/django/utils/decorators.py" in _wrapped_view 76. response = view_func(request, *args, **kwargs) File "/home/storm/webapps/django/lib/python2.6/django/utils/decorators.py" in bound_func 17. return func(self, *args2, **kwargs2) File "/home/storm/webapps/django/lib/python2.6/django/db/transaction.py" in _commit_on_success 299. res = func(*args, **kw) File "/home/storm/webapps/django/lib/python2.6/django/contrib/admin/options.py" in add_view 800. self.log_addition(request, new_object) File "/home/storm/webapps/django/lib/python2.6/django/contrib/admin/options.py" in log_addition 428. object_repr = force_unicode(object), File "/home/storm/webapps/django/lib/python2.6/django/utils/encoding.py" in force_unicode 66. s = unicode(s) Exception Type: TypeError at /admin/georoute/route/add/ Exception Value: coercing to Unicode: need string or buffer, LineString found
您可以發佈完整的堆棧跟蹤? – godswearhats 2010-07-16 19:15:24
編輯並添加堆棧跟蹤 – useless 2010-07-16 23:06:44