Когда я пытаюсь создать объект с иностранным ключом (в данном случае 2) через API моего проекта, 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, и он работал нормально, проблема в том, что мне нужны полные объекты для рендеринга на стороне клиента (я использую Backbone и модель автоматически отображается). Так как я могу это сделать? Есть ли способ сказать вкусные пироги, чтобы не создавать связанные объекты?