Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Помогите с кастомными полями #91

Open
Korliore opened this issue Apr 30, 2023 · 7 comments
Open

Помогите с кастомными полями #91

Korliore opened this issue Apr 30, 2023 · 7 comments
Labels

Comments

@Korliore
Copy link

Korliore commented Apr 30, 2023

Пытался решить проблему с помощью #90, но безуспешно.

Кусок кода:
class Lead(_Lead): rasshifrovka = custom_field.UrlCustomField("Расшифровка", field_id=1400397)

( на самом деле кастомных полей больше)

existing_lead = Lead.objects.get(query=checkbox[0]) # Обновляем данные существующей сделки existing_lead.rasshifrovka = checkbox[12] existing_lead.price = convert_sum(checkbox[2]) existing_lead.save()

Если закомментировать строчки с кастомными полями и оставить только стандартные, то все заработает. Если есть кастомные поля(любые), то выпадет ошибка.
Удивительно то, что все работает на моем аккаунте, но не работает на аккаунте заказчика. Создание новых сделок тоже работает отлично.

Ошибка
Traceback (most recent call last): File "crmAPI.py", line 193, in <module> upd_lead(check_checkbox()) File "crmAPI.py", line 189, in upd_lead create_a_deal(checkbox) File "crmAPI.py", line 161, in create_a_deal existing_lead.update() File "/root/crm_integration/venv/lib/python3.6/site-packages/amocrm/v2/model.py", line 63, in update self._manager.update(self.id, self._get_updated_data()) File "/root/crm_integration/venv/lib/python3.6/site-packages/amocrm/v2/manager.py", line 19, in update return self._interaction.update(object_id=object_id, data=data or kwargs) File "/root/crm_integration/venv/lib/python3.6/site-packages/amocrm/v2/interaction.py", line 132, in update raise exceptions.ValidationError(response) amocrm.v2.exceptions.ValidationError: {'validation-errors': [{'request_id': '0', 'errors': [{'code': 'FieldNotExpected', 'path': 'custom_fields_values.0.is_computed', 'detail': 'This field was not expected.'}, {'code': 'FieldNotExpected', 'path': 'custom_fields_values.1.is_computed', 'detail': 'This field was not expected.'}, {'code': 'FieldNotExpected', 'path': 'custom_fields_values.2.is_computed', 'detail': 'This field was not expected.'}, {'code': 'FieldNotExpected', 'path': 'custom_fields_values.3.is_computed', 'detail': 'This field was not expected.'}, {'code': 'FieldNotExpected', 'path': 'custom_fields_values.4.is_computed', 'detail': 'This field was not expected.'}, {'code': 'FieldNotExpected', 'path': 'custom_fields_values.5.is_computed', 'detail': 'This field was not expected.'}, {'code': 'FieldNotExpected', 'path': 'custom_fields_values.6.is_computed', 'detail': 'This field was not expected.'}, {'code': 'FieldNotExpected', 'path': 'custom_fields_values.7.is_computed', 'detail': 'This field was not expected.'}, {'code': 'FieldNotExpected', 'path': 'custom_fields_values.8.is_computed', 'detail': 'This field was not expected.'}, {'code': 'FieldNotExpected', 'path': 'custom_fields_values.9.is_computed', 'detail': 'This field was not expected.'}]}], 'title': 'Bad Request', 'type': 'https://httpstatus.es/400', 'status': 400, 'detail': 'Request validation failed'}

@alex-msk
Copy link
Contributor

Быть может проблема в том, что field_id у заказчика и у Вас отличаются?

@Korliore
Copy link
Author

Быть может проблема в том, что field_id у заказчика и у Вас отличаются?

нет, ошибка не в этом т.к я получил все новые поля с помощью

export AMOCRM_CLIENT_ID=xxx export AMOCRM_SECRET=xxx export AMOCRM_SUBDOMAIN=xxx export AMOCRM_REDIRECT_URL=xxx export AMOCRM_CODE=xxx # optional pyamogen > models.py

Как было выше сказано, создание новых сделок на аккаунте заказчика работает корректно

@Korliore
Copy link
Author

Korliore commented Apr 30, 2023

Быть может проблема в том, что field_id у заказчика и у Вас отличаются?

ваш тикет я тоже изучил (#68)
Добавил в код схожий костыль
Вот полный код отвечающий за создание/обновление сделки: https://gist.github.com/IriskaID/ecb78e33191793ad6eed83d9e80699bf

@Korliore
Copy link
Author

Korliore commented May 1, 2023

UPD: отписал в техническую поддержку. Код верный, иначе бы он на другом аккаунте не работал. Даже с новым тестовым полем выбивает эту же ошибку

@Korliore
Copy link
Author

Korliore commented May 3, 2023

https://pastebin.pl/view/dd809566
отловил запросы, которые отправляет библиотека. Проблема остается

@Korliore
Copy link
Author

Korliore commented May 3, 2023

Удалось исправить. Библиотека передавала лишний ключ is_computed.
Проблема решилась модификацией функции update в файле interaction.py

https://pastebin.com/Y4VN1M1S

@Korliore Korliore closed this as completed May 3, 2023
@Krukov
Copy link
Owner

Krukov commented Jun 3, 2023

А почему это поле на вашем акаунте не передавалось ?

Видимо в некоторых случаях апи амосрим на получении сушьности добавляет лишнее поля а выдачу апи которы не описаны в документации

Нужно поправить в библиотеке - убрать при формировании обновлении кастомного поле лишние поля ( брать только values, field_name, field_code

@Krukov Krukov reopened this Jun 3, 2023
@Krukov Krukov added the bug label Oct 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants