39 lines
1.3 KiB
Python
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}")
|
|
)
|