私は geoDjango で Django インストールを実行しており、次のようなモデルを作成しました:
#models.py django.contrib.gis.db インポート モデルから クラスルート(models.Model): 名前 = models.CharField(max_length=100) パス = models.LineStringField(srid=4326) オブジェクト = models.GeoManager() def __unicode__(自己): str(self.path) を返す
これは機能し、端末内で折れ線オブジェクトを作成することができました。確かに、それらを実際に表示することはできませんでしたが、表示がまだ完全に終了していないためです。
しかし、その後、2008 年から、geodjango の作成者である bronn のスクリーンキャストを見ました。彼は管理ページで openlayer オープン ストリート マップ インターフェイスを取得し、彼の指示に従い、OSMGeoAdmin を使用して admin.py を追加すると、次のようになります。
#admin.py django.contrib.gisインポート管理者から from myproject.georoute.models import Route クラス RouteAdmin(admin.OSMGeoAdmin): search_fields = ('名前',) admin.site.register(ルート、RouteAdmin)
これも正常に動作しています - 折れ線を描画できるマップを取得しますが、それを保存しようとすると、または Route オブジェクトが既に作成されていて、管理ページで Route リストを表示しようとすると、エラーが発生します。より具体的には、「Unicodeへの強制:文字列またはバッファが必要、LineStringが見つかりました」と私が理解していることから、これは __ unicode__ 関数(またはこのようなもの)を持たないオブジェクトをユニコードしようとすることから来ています。
そこで、折れ線オブジェクトの定義を確認しましたが、Unicode 関数がなかったので、うまく追加できませんでした。
ここで私は困惑しています。この問題を解決する方法を知っている人はいますか?
スタックトレースを編集:
環境: リクエスト方法: POST リクエスト URL: http://storm.webfactional.com/admin/georoute/route/add/ ジャンゴのバージョン: 1.2.1 Python バージョン: 2.6.5 インストール済みアプリケーション: ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.gis', 'django.contrib.admin', '登録'、 「ジオルート」] インストール済みミドルウェア: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware') トレースバック: get_response のファイル「/home/storm/webapps/django/lib/python2.6/django/core/handlers/base.py」 100. 応答 = コールバック(要求、*callback_args、**callback_kwargs) ラッパーのファイル「/home/storm/webapps/django/lib/python2.6/django/contrib/admin/options.py」 239. return self.admin_site.admin_view(view)(*args, **kwargs) _wrapped_view のファイル「/home/storm/webapps/django/lib/python2.6/django/utils/decorators.py」 76. response = view_func(リクエスト、*args、**kwargs) _wrapped_view_func のファイル「/home/storm/webapps/django/lib/python2.6/django/views/decorators/cache.py」 69. response = view_func(request, *args, **kwargs) 内部のファイル「/home/storm/webapps/django/lib/python2.6/django/contrib/admin/sites.py」 190. return view(request, *args, **kwargs) _wrapper のファイル「/home/storm/webapps/django/lib/python2.6/django/utils/decorators.py」 21. return デコレータ(bound_func)(*args, **kwargs) _wrapped_view のファイル「/home/storm/webapps/django/lib/python2.6/django/utils/decorators.py」 76. response = view_func(リクエスト、*args、**kwargs) bound_func 内のファイル「/home/storm/webapps/django/lib/python2.6/django/utils/decorators.py」 17. return func(self, *args2, **kwargs2) _commit_on_success のファイル「/home/storm/webapps/django/lib/python2.6/django/db/transaction.py」 299. res = func(*args, **kw) add_view のファイル「/home/storm/webapps/django/lib/python2.6/django/contrib/admin/options.py」 800.self.log_addition(リクエスト、new_object) log_addition のファイル「/home/storm/webapps/django/lib/python2.6/django/contrib/admin/options.py」 428. object_repr = force_unicode(オブジェクト), force_unicode のファイル「/home/storm/webapps/django/lib/python2.6/django/utils/encoding.py」 66. s = ユニコード 例外の種類: TypeError at /admin/georoute/route/add/ 例外値: Unicode への強制: 文字列またはバッファーが必要です。LineString が見つかりました