diff --git a/api/funkwhale_api/federation/models.py b/api/funkwhale_api/federation/models.py index 3e3cb0e52b8c19909fca4914bdf5c80aedcb97b2..d530c62df1007d4012609eec6fd530ed347cacb2 100644 --- a/api/funkwhale_api/federation/models.py +++ b/api/funkwhale_api/federation/models.py @@ -325,7 +325,9 @@ class Fetch(models.Model): ) object = GenericForeignKey("object_content_type", "object_id") status = models.CharField(default="pending", choices=FETCH_STATUSES, max_length=20) - detail = JSONField(default=empty_dict, max_length=50000, encoder=DjangoJSONEncoder) + detail = JSONField( + default=empty_dict, max_length=50000, encoder=DjangoJSONEncoder, blank=True + ) actor = models.ForeignKey(Actor, related_name="fetches", on_delete=models.CASCADE) objects = FetchQuerySet.as_manager() @@ -390,7 +392,9 @@ class Activity(models.Model): uuid = models.UUIDField(default=uuid.uuid4, unique=True) fid = models.URLField(unique=True, max_length=500, null=True, blank=True) url = models.URLField(max_length=500, null=True, blank=True) - payload = JSONField(default=empty_dict, max_length=50000, encoder=DjangoJSONEncoder) + payload = JSONField( + default=empty_dict, max_length=50000, encoder=DjangoJSONEncoder, blank=True + ) creation_date = models.DateTimeField(default=timezone.now, db_index=True) type = models.CharField(db_index=True, null=True, max_length=100) @@ -506,7 +510,7 @@ class LibraryTrack(models.Model): album_title = models.CharField(max_length=500) title = models.CharField(max_length=500) metadata = JSONField( - default=empty_dict, max_length=10000, encoder=DjangoJSONEncoder + default=empty_dict, max_length=10000, encoder=DjangoJSONEncoder, blank=True ) @property diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py index fdc4f87f8b6e8dd767c7f5acd418301ed06f7a0e..309eb1266dd5fd8db1446ff8981a89de4a1fecf9 100644 --- a/api/funkwhale_api/music/models.py +++ b/api/funkwhale_api/music/models.py @@ -642,12 +642,12 @@ class Upload(models.Model): # metadata from federation metadata = JSONField( - default=empty_dict, max_length=50000, encoder=DjangoJSONEncoder + default=empty_dict, max_length=50000, encoder=DjangoJSONEncoder, blank=True ) import_date = models.DateTimeField(null=True, blank=True) # optionnal metadata provided during import import_metadata = JSONField( - default=empty_dict, max_length=50000, encoder=DjangoJSONEncoder + default=empty_dict, max_length=50000, encoder=DjangoJSONEncoder, blank=True ) # status / error details for the import import_status = models.CharField( @@ -659,10 +659,10 @@ class Upload(models.Model): # optionnal metadata about import results (error messages, etc.) import_details = JSONField( - default=empty_dict, max_length=50000, encoder=DjangoJSONEncoder + default=empty_dict, max_length=50000, encoder=DjangoJSONEncoder, blank=True ) from_activity = models.ForeignKey( - "federation.Activity", null=True, on_delete=models.SET_NULL + "federation.Activity", null=True, on_delete=models.SET_NULL, blank=True ) objects = UploadQuerySet.as_manager() diff --git a/changes/changelog.d/819.bugfix b/changes/changelog.d/819.bugfix new file mode 100644 index 0000000000000000000000000000000000000000..a1977568c3b00c959bbdfb1595baea49f71aeebc --- /dev/null +++ b/changes/changelog.d/819.bugfix @@ -0,0 +1 @@ +Fixed invalid required fields in Upload django's admin (#819)