djangoとtastypieを使用しているサーバーと、backbone.jsを使用しているクライアントWebベースのアプリがあります。データは正常に読み取ることができますが、外部キーを使用して新しいモデルを追加してから同期しようとすると問題が発生します。
そのため、サーバーと自動的に同期するcollection.createを呼び出すのが最も簡単な方法だと思いました。外部キーのないテーブルでこれを行うと、正常に機能します。しかし、サーバーデータベースに関係があるモデルがある場合、外部キーをどのように指定するのかわかりません。
モデルの外部キーは、元々次の形式で提供されます。/api/v1/porttype/4/
このような文字列を作成しようとすると404エラーが発生し、intだけを送信しようとすると404エラーが発生します。
サーバーが何を期待しているのかよくわかりません。これが構成の問題かどうかはわかりません...今は少し迷っています。これまでのところ、私は次のようなことをしています。
collection.create([ { 'project': '/api/v1/porttype/4/', 'name': 'test' } ]);
project
この場合、外部キーになります。
編集:サーバーから返されるスタックトレース:
{"error_message": "", "traceback": "Traceback (most recent call last)n\n File \"/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py\", line 192, in wrapper\n response = callback(request, *args, **kwargs)\n\n File \"/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py\", line 397, in dispatch_list\n return self.dispatch('list', request, **kwargs)\n\n File \"/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py\", line 427, in dispatch\n response = method(request, **kwargs)\n\n File \"/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py\", line 1165, in post_list\n updated_bundle = self.obj_create(bundle, request=request, **self.remove_api_resource_names(kwargs))\n\n File \"/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py\", line 1774, in obj_create\n bundle = self.full_hydrate(bundle)\n\n File \"/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py\", line 698, in full_hydrate\n value = field_object.hydrate(bundle)\n\n File \"/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/fields.py\", line 636, in hydrate\n value = super(ToOneField, self).hydrate(bundle)\n\n File \"/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/fields.py\", line 154, in hydrate\n elif self.attribute and getattr(bundle.obj, self.attribute, None)n\n File \"/Library/Python/2.7/site-packages/Django-1.3.2-py2.7.egg/django/db/models/fields/related.py\", line 301, in __get__\n raise self.field.rel.to.DoesNotExist\n\nDoesNotExist\n"}
認識されないようです...そして、このdjangoエラーを検索したところ、追加時にnull以外のフィールドを送信しないようですが、確かではありません
ヘルプ!