UpdateOBjectOperation do i18n correctly
This commit is contained in:
parent
76c90cd9f3
commit
fe1159a8ff
1 changed files with 8 additions and 1 deletions
|
@ -58,7 +58,14 @@ class UpdateObjectOperation(BaseOperation):
|
||||||
fields: FieldValuesDict
|
fields: FieldValuesDict
|
||||||
|
|
||||||
def apply(self, values: FieldValuesDict, instance: Model) -> Model:
|
def apply(self, values: FieldValuesDict, instance: Model) -> Model:
|
||||||
values.update(self.fields)
|
model = apps.get_model('mapdata', self.obj.model)
|
||||||
|
for field_name, value in self.fields.items():
|
||||||
|
field = model._meta.get_field(field_name)
|
||||||
|
if isinstance(field, I18nField) and field_name in self.fields:
|
||||||
|
values[field_name] = {lang: val for lang, val in values[field_name].update(value).items()
|
||||||
|
if val is not None}
|
||||||
|
else:
|
||||||
|
values[field_name] = value
|
||||||
instance = list(serializers.deserialize("json", json.dumps([{
|
instance = list(serializers.deserialize("json", json.dumps([{
|
||||||
"model": f"mapdata.{self.obj.model}",
|
"model": f"mapdata.{self.obj.model}",
|
||||||
"pk": self.obj.id,
|
"pk": self.obj.id,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue