Как я могу создать категорию для несгруппированных данных?

Я пытаюсь создать категорию для отсканированных данных, которые не сгруппированы, но получаю эту ошибку. Мне интересно, есть ли способ обойти ее.

Traceback (most recent call last):
  File "C:\Users\MUHUMUZA IVAN\Desktop\JobPortal\test.py", line 128, in <module>
    the_category = Category.objects.get(title="Others")
  File "C:\Users\MUHUMUZA IVAN\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\models\manager.py", line 82, in manager_method 
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\MUHUMUZA IVAN\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\models\query.py", line 397, in get
    raise self.model.DoesNotExist(
jobapp.models.Category.DoesNotExist: Category matching query does not exist.
for test_job in final_jobs:

    if 'Manager' in test_job['title']:
        the_category = Category.objects.get(title='Manager')
    elif 'Engineer' in test_job['title']:
        the_category = Category.objects.get(title= 'Engineer')
    elif 'Architect' in test_job['title']:
        the_category = Category.objects.get(title='Architect')
    else:
        the_category = Category.objects.get(title="Others")

Я знаю, что он говорит, что нет запроса, соответствующего запросу Others, как я могу исправить это.

Вместо использования Category.objects.get(title="...") в каждом блоке if/elif. вы можете выбрать один из этих методов для получения связанного the_category объекта:

пользовательская функция с обработанным DoesNotExist исключением:

def get_category_object(title):
    try:
        the_category = Category.objects.get(title='...')
    except Category.DoesNotExist:
        the_category = None

get_object_or_404() функция:

from django.shortcuts import get_object_or_404

the_category = get_object_or_404(Category, title='...')

.get_or_create() метод:

the_category, created = Category.objects.get_or_create(title='...')

.filter() и .first() методы:

the_category = Category.objects.filter(title='...').first()
Вернуться на верх