Я использую Backbone-tastypie для создания вложенного ресурса, как это.
Для получения ServiceResource он прекрасно работает. Я возвращаю объект Service обратно, который содержит все ServiceSpecification, которые в свою очередь имеют все ServiceSpecRange / константы и т. Д.
Передача всего вложенного ресурса обратно на сервер также отлично работает для существующих данных.
Тем не менее, всякий раз, когда я пытаюсь опубликовать весь вложенный ресурс за один раз (новый сервис с присоединенной новой спецификацией), я получаю:
У меня уже была эта ошибка, и я обнаружил, что она связана с не включением resource_uri в связанный ресурс. Но в этом случае я пишу - так что не стоит жаловаться на отсутствие resource_uri во вложенном ресурсе. Причина, по которой они не включены, заключается в том, что родительский ресурс еще не был сохранен. Разве вкусный пирог недостаточно продвинут, чтобы это увидеть?
{"error_message": "аргумент int () должен быть строкой или числом, а не
'list' "," traceback ":" Traceback (последний вызов был последним):
Файл \ "build / bdist.linux-x86_64 / egg / tastypie / resources.py \", строка 192,
в ответе оболочки = обратный вызов (запрос, * args, ** kwargs)
F> ile \ "build / bdist.linux-x86_64 / egg / tastypie / resources.py \", строка 397,
в dispatch_list вернуть self.dispatch ('list', request, ** kwargs)
Файл \ "build / bdist.linux-x86_64 / egg / tastypie / resources.py \", строка 427,
в ответе на отправку = метод (запрос, ** kwargs)
Файл \ "build / bdist.linux-x86_64 / egg / tastypie / resources.py \", строка
1165, в post_list updated_bundle = self.obj_create (связка,
request = request, ** self.remove_api_resource_names (kwargs))
Файл \ "build / bdist.linux-x86_64 / egg / tastypie / resources.py \", строка
1783, в obj_create m2m_bundle = self.hydrate_m2m (связка)
Файл \ "build / bdist.linux-x86_64 / egg / tastypie / resources.py \", строка 743,
в hydrate_m2m bundle.data [field_name] =
field_object.hydrate_m2m (комплект)
Файл \ "build / bdist.linux-x86_64 / egg / tastypie / fields.py \", строка 742, в
hydrate_m2m m2m_hydrated.append (self.build_related_resource (value,
** kwargs))
Файл \ "build / bdist.linux-x86_64 / egg / tastypie / fields.py \", строка 593, в
возвращение build_related_resource
self.resource_from_data (self.fk_resource, value, ** kwargs)
Файл \ "build / bdist.linux-x86_64 / egg / tastypie / fields.py \", строка 548, в
возвращение resource_from_data fk_resource.obj_update (fk_bundle, ** data)
Файл \ "build / bdist.linux-x86_64 / egg / tastypie / resources.py \", строка
1814, в obj_update bundle.obj = self.obj_get (запрос,
** lookup_kwargs)
Файл \ "build / bdist.linux-x86_64 / egg / tastypie / resources.py \", строка
1752, в obj_get base_object_list =
self.get_object_list (запрос) .filter (** kwargs)
Файл
\ "/ USR / местные / Библиотека / python2.7 / сайт-пакеты / Джанго / дб / модели / query.py \",
строка 550, в фильтре возвращается self._filter_or_exclude (False, * args,
** kwargs)
Файл
\ "/ USR / местные / Библиотека / python2.7 / сайт-пакеты / Джанго / дб / модели / query.py \",
строка 568, в _filter_or_exclude clone.query.add_q (Q (* args, ** kwargs))
Файл
\ "/ USR / местные / Библиотека / python2.7 / сайт-пакеты / Джанго / дб / модели / SQL / query.py \",
строка 1194, в add_q can_reuse = used_aliases, force_having = force_having)
Файл
\ "/ USR / местные / Библиотека / python2.7 / сайт-пакеты / Джанго / дб / модели / SQL / query.py \",
линия 1129, в разъеме add_filter)
* +1048 * Файл
\ "/ USR / местные / Библиотека / python2.7 / сайт-пакеты / Джанго / дб / модели / SQL / where.py \",
строка 67, в add value = obj.prepare (lookup_type, value)
Файл
\ "/ USR / местные / Библиотека / python2.7 / сайт-пакеты / Джанго / дб / модели / SQL / where.py \",
строка 316, в подготовительном возвращении self.field.get_prep_lookup (lookup_type,
значение)
Файл\ "/ usr / local / lib / python2.7 / site-packages / django / db / models / fields / related.py \", строка 136, в get_prep_lookup возвращает self._pk_trace (значение, 'get_prep_lookup', lookup_type)
Файл \ "/ usr / local / lib / python2.7 / site-packages / django / db / models / fields / related.py \", строка 209, в _pk_trace v = getattr (field, prep_func)(lookup_type, v, ** kwargs)
Файл \ "/ usr / local / lib / python2.7 / site-packages / django / db / models / fields / init .py\ ", строка 292, в get_prep_lookup возвращает self.get_prep_value (значение)
Файл \" / usr / local / lib / python2.7 / site-packages / django / db / models / fields / init .py \ ", строка 479, в get_prep_value возвращает int (значение)
TypeError: аргумент int () должен быть строкой или числом, а не 'list'"}