小编sex*_*ecs的帖子

尽管字段具有“空白=真”,但在执行 PUT 请求时,Django EmbeddedModelField 会说“此字段可能不为空”

我正在使用 django-rest-framework 创建一个 Django 应用程序,并使用 djongo 连接到 MongoDB。我有这样的嵌套模型:

class Group(models.Model):
    users = models.ArrayModelField(
        model_container=User
    )

class User(models.Model):
    number = models.IntegerField(
        default=None,
        null=True
    )

    song = models.EmbeddedModelField(
        model_container=Song,
        null=True,
        blank=True
    )

    class Meta:
        abstract = True

class Song(models.Model):
    mp3_file = models.URLField(
        default=None,
        blank=True,
        null=True
    )

    comments = models.CharField(
        max_length=250,
        default='',
        blank=True
    )

    class Meta:
        abstract = True
Run Code Online (Sandbox Code Playgroud)

创建组后,用户和歌曲的创建没有任何问题。例如,创建后,组可能如下所示:

{
    "name": "Sample",
    "users: [
        {
            "number": null,
            "song": {
                "mp3_file": null,
                "comments": ""
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这一切正常。但是,如果我尝试执行 PUT 请求并且不更改“number”、“mp3_file”或“comments”的值,则会收到以下错误消息:

"user": [ …
Run Code Online (Sandbox Code Playgroud)

django django-models mongodb django-rest-framework djongo

2
推荐指数
1
解决办法
3667
查看次数