プロジェクト API を介して外部キー (この場合は 2) を持つオブジェクトを作成しようとすると、tastypie は関連するオブジェクトも作成しようとします (注文と参加者はこちら):
class ParticipationResource(ModelResource):
order = fields.ForeignKey(Order, 'order', full=True,)
participant = fields.ForeignKey(UserProfile, 'participant', full=True)
class Meta:
authorization = Authorization()
queryset = Participation.objects.all()
resource_name = 'participation'
fields = ['id', 'order', 'participant', 'products', 'created_at', 'modified_at']
filtering = {
'participant': ALL
}
detail_allowed_methods = ['get', 'post', 'put', 'delete',]
always_return_data = True
掲載データ:
{
"order": {
"id":"1",
"resource_uri":"/api/v1/order/1/"
...
},
"participant":{
"id":"1",
"resource_uri":"/api/v1/participant/1/"
...
},
"products":[]
}
エラー メッセージ (network_id はユーザー プロファイル モデルの外部キーです):
"error_message": "app_user_profile.network_id may not be NULL",
ご覧のとおり、私は POST リクエストで完全なオブジェクトを送信しています。resource_uri だけで試してみましたが、問題なく動作しました。問題は、クライアント側のレンダリングに完全なオブジェクトが必要なことです (私はバックボーンを使用しており、モデルは自動的にレンダリングされます)。では、どうすればよいですか?関連オブジェクトを作成しないようにtastypieに指示する方法はありますか?