Updates remote user when refreshing key

This commit is contained in:
Mouse Reeve
2020-12-04 16:26:07 -08:00
parent 9c9da35d9a
commit 142a39cf55
3 changed files with 13 additions and 19 deletions

View File

@ -106,7 +106,7 @@ class ActivityObject:
if isinstance(formatted_value, dict) and \
formatted_value.get('id'):
# if the AP field is a serialized object (as in Add)
# or PublicKey
# or KeyPair (even though it's OneToOne)
related_model = field.related_model
related_activity = related_model.activity_serializer
mapped_fields[field.name] = related_activity(
@ -131,6 +131,7 @@ class ActivityObject:
formatted_value = None
mapped_fields[field.name] = formatted_value
if instance:
# updating an existing model instance
for k, v in mapped_fields.items():
@ -178,13 +179,13 @@ class ActivityObject:
if values == MISSING:
continue
model_field = getattr(instance, model_key)
model = model_field.model
related_model = model_field.model
for item in values:
if isinstance(item, str):
item = resolve_remote_id(model, item)
item = resolve_remote_id(related_model, item)
else:
item = model.activity_serializer(**item)
item = item.to_model(model)
item = related_model.activity_serializer(**item)
item = item.to_model(related_model)
field_name = instance.__class__.__name__.lower()
setattr(item, field_name, instance)
item.save()