haikal/inventory/management/commands/update_car_make.py
2025-06-22 13:25:54 +03:00

39 lines
1.3 KiB
Python

from django.core.management.base import BaseCommand
from inventory.models import CarMake
import json
class Command(BaseCommand):
help = "Update CarMake model with data from a JSON file"
def handle(self, *args, **kwargs):
# Load the JSON data from the file
with open("carmake_updated_backup.json", "r", encoding="utf-8") as file:
car_makes_data = json.load(file)
# Iterate over the data and update the CarMake model
for car_make_data in car_makes_data:
pk = car_make_data["pk"]
fields = car_make_data["fields"]
# Get or create the CarMake instance
car_make, created = CarMake.objects.get_or_create(pk=pk)
# Update the fields
car_make.name = fields["name"]
car_make.arabic_name = fields["arabic_name"]
car_make.logo = fields["logo"]
car_make.is_sa_import = fields["is_sa_import"]
# Save the updated instance
car_make.save()
if created:
self.stdout.write(
self.style.SUCCESS(f"Created CarMake: {car_make.name}")
)
else:
self.stdout.write(
self.style.SUCCESS(f"Updated CarMake: {car_make.name}")
)