#!/usr/bin/env python """ Check existing kit bindings in database """ import os import sys import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') django.setup() from products.models.kits import ConfigurableKitProduct, ConfigurableKitProductAttribute from django_tenants.utils import tenant_context from tenants.models import Client try: client = Client.objects.get(schema_name='grach') except Client.DoesNotExist: print("Tenant 'grach' not found") sys.exit(1) with tenant_context(client): print("=" * 80) print("Current ConfigurableKitProduct items in database:") print("=" * 80) for product in ConfigurableKitProduct.objects.all().order_by('-id')[:5]: attrs_count = product.parent_attributes.count() kit_bound = product.parent_attributes.filter(kit__isnull=False).count() print(f"\nID {product.id}: {product.name} (SKU: {product.sku})") print(f" Total attributes: {attrs_count}") print(f" Kit-bound attributes: {kit_bound}") if attrs_count > 0: print(" Attribute breakdown:") params = product.parent_attributes.values('name').distinct() for param in params: param_name = param['name'] values = product.parent_attributes.filter(name=param_name).values_list('option', 'kit__name') print(f" - {param_name}:") for value, kit_name in values: kit_info = f"Kit: {kit_name}" if kit_name else "(no kit)" print(f" * {value} -> {kit_info}")