Как получить и сопоставить категории в определенном корне категорий для сохранения в базе данных?
Добрый день всем. Нужно получить все id из корневой категории, и передать их при создании модели. На данный момент я делаю это следующим образом:
game = driver.find_element_by_class_name('breadcrumbs').find_elements_by_tag_name('a')[0].text #root cat
data_categories = driver.find_elements_by_class_name('rightDetailsBlock')[0].find_elements_by_tag_name('a') # I get categories that need to be mapped to the category root
root_category = Category.objects.get(slug=game) #I get the root category
children_categories = root_category.get_descendants(include_self=False) #I get children in the root category
category_list = [] # list for saving to base
for data_category in data_categories:
data_category = data_category.text
try:
cildren_cat = children_categories.filter(slug__icontains=data_category)
category_list.append(cildren_cat)
except Exception as ex:
print(ex)
category_list.append(root_category)
category_list = list(set(category_list))
При создании модели:
try:
data = Post.objects.get(title=title)
print('File duplicated in database!')
data.save()
except Post.DoesNotExist:
print('File starting save in database!')
data = Post.objects.create(
title=title,
slug=slug,
content=format_html(content),
created_by_id=7,
is_published=True,
author=', '.join(map(str, author_list)),
source=self.task.url
)
data.category.add(*category_list)
data.save()
Я ловлю ошибку:
Task modules.parser.tasks.parser_driver_task[da70b753-fd59-4103-a32d-806096b52616] raised unexpected: TypeError("Field 'id' expected a number but got <TreeQuerySet []>.")
Я понимаю, в чем ошибка. Но я не знаю, как решить другую задачу, чтобы получить корневую категорию и сопоставить ее дочерним категориям и получить в результате список id?
Спасибо за помощь.