可以保存 Django Admin 上的空 ArrayField 吗?

Can an empty ArrayField on Django Admin be saved?

models.py

class BlogArticle(models.Model):
    # ...
    likers = ArrayField(models.GenericIPAddressField(), default=list)

admin.py

admin.site.register(BlogArticle)

当使用 Django Admin 页面处理带有空列表的文章时,输入为空。这对我来说没问题,但是在保存对象时(例如在编辑其他字段之后),我收到此错误:

它似乎被解释为一个None值,而当前值实际上是一个有效的空列表。

为什么 Django 会使用相同的方式来表示空列表和管理中的 None 值?我想知道它是不是设计得很糟糕,或者我是否遗漏了什么。

请注意,添加 blank=True 会使情况变得更糟,因为它不会引发任何错误,但会默默地将空列表转换为 None。

我在发帖前弄明白了,但认为它对其他人仍然有用

简单的(对你们大多数人来说可能是显而易见的)解决方案是:

ArrayField(models.GenericIPAddressField(), default=list, blank=True, null=False)