I want to use get_or_create() to search for an object. If it doesn't exist, it gets created. If it does exist, I want to update its metadata which is stored as a JSONFeild.
obj, created = Customer.objects.get_or_create(
first_name="John",
last_name="Doe",
defaults={
'metadata':{
"customer_created": "2022_09_26",
"adress_list": ["123 Street"],
},
)
Which is correct?
if not created:
obj.metadata["address_list"].append("123 Street")
or
if not created:
addresses = obj.medata["address_list"]
addresses.append("123 Street")
obj.metadata["address_list"] = addresses
obj.save()
Is there a better way to do this? I am not allowed to change the Customer class but I can change how I structure the metadata dict.