mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-04 08:39:16 +02:00
See #170: fixed fetch of channel track not working
This commit is contained in:
parent
1d37a2c819
commit
e7622729a9
7 changed files with 100 additions and 23 deletions
|
@ -374,8 +374,8 @@ def fetch(fetch_obj):
|
|||
except IndexError:
|
||||
return error("missing_jsonld_type")
|
||||
try:
|
||||
serializer_class = fetch_obj.serializers[type]
|
||||
model = serializer_class.Meta.model
|
||||
serializer_classes = fetch_obj.serializers[type]
|
||||
model = serializer_classes[0].Meta.model
|
||||
except (KeyError, AttributeError):
|
||||
fetch_obj.status = "skipped"
|
||||
fetch_obj.fetch_date = timezone.now()
|
||||
|
@ -388,8 +388,14 @@ def fetch(fetch_obj):
|
|||
else:
|
||||
existing = model.objects.filter(fid=id).first()
|
||||
|
||||
serializer = serializer_class(existing, data=payload)
|
||||
if not serializer.is_valid():
|
||||
serializer = None
|
||||
for serializer_class in serializer_classes:
|
||||
serializer = serializer_class(existing, data=payload)
|
||||
if not serializer.is_valid():
|
||||
continue
|
||||
else:
|
||||
break
|
||||
if serializer.errors:
|
||||
return error("validation", validation_errors=serializer.errors)
|
||||
try:
|
||||
obj = serializer.save()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue