KeyError: 'fields', но ключ 'fields' работает в одно и то же время
Это довольно странно: print wint ex_pur['fields']
работает, и в то же время у меня есть KeyError: 'fields'
abote this print()
. Помогите, пожалуйста, понять, что я делаю не так. Спасибо!
...
try:
existed_purchases_queryset = Purchases.objects.filter(name__in=purchases_names, list_id=list_id)
existed_purchases = serializers.serialize('python', existed_purchases_queryset)
response["existed"] = existed_purchases
print(f"----------------\n{existed_purchases = }\n----------------")
existed_purchases_names = [pur['fields']['name'] for pur in existed_purchases]
except Purchases.DoesNotExist:
print("Все позиции новые.")
for purchase in purchases:
print(f"{type(existed_purchases[0]) = }")
purchases_serializer = PurchaseAddSerializer(data=purchase)
do = False
if purchase['name'] in existed_purchases_names:
for ex_pur in existed_purchases:
print(f"----------------\n{('description' in **ex_pur['fields']**.keys()) = }\n----------------")
if ex_pur['fields']['name'] == purchase['name']:
...
----------------
('description' in ex_pur['fields'].keys()) = True
----------------
----------------
('description' in ex_pur['fields'].keys()) = True
----------------
----------------
('description' in ex_pur['fields'].keys()) = True
----------------
Internal Server Error: /purchases/add/
Traceback (most recent call last):
File "C:\Users\lars5\OneDrive\Programming\Python\shopping_list_telegram_bo
t_02_django\.venv\Lib\site-packages\django\core\handlers\exception.py", line
55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lars5\OneDrive\Programming\Python\shopping_list_telegram_bo
t_02_django\.venv\Lib\site-packages\django\core\handlers\base.py", line 197,
in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lars5\OneDrive\Programming\Python\shopping_list_telegram_bo
t_02_django\.venv\Lib\site-packages\django\views\decorators\csrf.py", line 6
5, in _view_wrapper
return view_func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lars5\OneDrive\Programming\Python\shopping_list_telegram_bo
t_02_django\.venv\Lib\site-packages\django\views\generic\base.py", line 104,
in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lars5\OneDrive\Programming\Python\shopping_list_telegram_bo
t_02_django\.venv\Lib\site-packages\rest_framework\views.py", line 509, in d
ispatch
response = self.handle_exception(exc)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lars5\OneDrive\Programming\Python\shopping_list_telegram_bo
t_02_django\.venv\Lib\site-packages\rest_framework\views.py", line 469, in h
andle_exception
self.raise_uncaught_exception(exc)
File "C:\Users\lars5\OneDrive\Programming\Python\shopping_list_telegram_bo
t_02_django\.venv\Lib\site-packages\rest_framework\views.py", line 480, in r
aise_uncaught_exception
raise exc
File "C:\Users\lars5\OneDrive\Programming\Python\shopping_list_telegram_bo
t_02_django\.venv\Lib\site-packages\rest_framework\views.py", line 506, in d
ispatch
response = handler(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lars5\OneDrive\Programming\Python\shopping_list_telegram_bo
t_02_django\list\views.py", line 183, in post
print(f"----------------\n{('description' in **ex_pur['fields']**.keys()) =
}\n----------------")
~~~~~~^^^^^^^^^^
**KeyError: 'fields'**
[03/Feb/2024 18:11:32] "POST /purchases/add/ HTTP/1.1" 500 99390
Попытались проверить типы: ex_pur - dict. Попытался проверить, есть ли "fields"
в ex_pur.keys()
- True. Пробовал спрашивать у второго пилота в разных вейсах - ничего полезного. Я не знаю, что делать дальше. Я уже потратил 2 часа на эту проблему...
Я разобрался! Я добавлял в список existed_purchases разные древовидные дикты, поэтому некоторые дикты в нем действительно не имели ключевых "полей", в чем и заключалась проблема. Я исправил это! Спасибо за помощь!