Closed alex-msk closed 1 year ago
Вообщем то ли API AmoCRM не воспринимает 'field_code' и 'enum_code', то ли не воспринимает их вместе c ID полей и значений, то ли ему требуется строго ID, но временно удалось обойти проблему таким вот адовым костылём :)
for c in crm_inst._data['custom_fields_values']:
if 'field_code' in c:
del c['field_code']
if 'values' in c:
for v in c['values']:
if 'enum_code' in v:
del v['enum_code']
crm_inst - это экземпляр Contact
честно скажу я с Енумами потому так и не работал или не разобрался - надо смотреть: может тут кривая реализация )
Да судя по коду они и не будут работать https://github.com/Krukov/amocrm_api/blame/426f4582e3c6b15a4bd68315b7ea40946fb6d736/amocrm/v2/entity/custom_field.py#L196
Ну, мой грязный хак выше вполне себе работает. Так что здесь им то ли не нравится наличие field_code/enum_code, то ли field_code вместе с field_id(нужно что то одно). Судя по всему, нужно убрать field_code/enum_code, если это не противоречит ничему другому в проекте.
Подскажите, где спросить про api (интересуют обновление enums в кастомных полях так, чтобы не слетали со сделок. В ТП послали в тематические сообщества (или к ведущему партнеру - я не знаю кто это), где эти сообщества искать? Или может тут кто знает?
from_field = Manager(
GenericInteraction(
path=f"leads/custom_fields",
field="custom_fields",
),
model=custom_field.CustomFieldModel,
)
data = {
"enums": enums_list
}
from_field.update(object_id=123, data=data)
обновляю так, но он вроде создает новый список.
@LennyLip привет не понял что такое "ТП" )
Проблема с енумами есть да и она еще не решена. У меня не хватает мотивации поддерживать библиотеку. Может @alex-msk что то сможет подсказать?
@LennyLip привет не понял что такое "ТП" )
ТП - это ТехПоддержка. К библиотеке вопросов нет, код выше работает отлично. С обновлением тоже разобрался, если значение передать с id, то оно остается, если id нет - то создается новый, если значения в амо есть, но id не передали - то оно удаляется соответсвенно при апдейте.
Для примера:
data = {"enums": [{'id': 1291669, 'value': 'Тест 1', 'sort': 1},
{'id': 1291671, 'value': 'Тест 2', 'sort': 2},
{'value': 'Тест 3', 'sort': 3}
]}
первые два останутся как были, тест 3 - создаст новый.
Есть такое поле
Делаю так:
или
затем
и получаю Exception:
Причем такое почти при любом сохранении полей кроме стандартных(в смысле при сохранении custom_fields). в чем может быть проблема?