from models import Category, Product, Message def seed_category(categ_titles: list, categ_descr: list = None): if not categ_descr: categ_descr = [(item + ' descr') for item in categ_titles] categ_list = list() categories = zip(categ_titles, categ_descr) for record in categories: categ_list.append({'title': record[0], 'description': record[1]}) Category().fill_category_collection(categ_list) if __name__ == '__main__': Category.drop_collection() Product.drop_collection() Message.drop_collection() """seeding categories""" seed_category(['Accessories', 'Menswear', 'Sportswear']) """seeding subcategories""" accessories = ['Belts', 'Gloves', 'Hats'] menswear = ['Trousers', 'Tie', 'Jacket'] sportswear = ['Leggins', 'Tracksuits'] seed_category(categ_titles=accessories) seed_category(categ_titles=menswear) seed_category(categ_titles=sportswear) """matching subcategories to categories""" category = Category.objects.get(title='Accessories') for record in accessories: category.add_subcategory(Category.objects.get(title=record))