首页 > 解决方案 > 如何获取和匹配要保存到数据库的特定类别根中的类别?

问题描述

祝大家有美好的一天。您需要从根类别中获取所有 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 列表作为结果?

谢谢您的帮助。

标签: pythondjangomptt

解决方案


推荐阅读