首页 > 解决方案 > 如何在具有 Jsonfield 的模型中发布 django rest 中的数据

问题描述

我的任务是创建一个简单的发布 API,以通过包含全名、地址、电话等字段的联系表单向访问者发送消息。但是,我必须使用具有 Jsonfield 的现有模型,而不是创建模型。现在我需要做的是使用该 jsonfield,它将包含名称、地址等所有字段。

class Core(models.Model):
    """
    Model that saves the corresponding credentials for the slug.
    """

    slug = models.CharField(max_length=255, null=False)
    example = models.JSONField(null=False, default=dict)

    def __str__(self) -> str:
        return self.slug

如果通过创建模型以常规方式完成,它会是这样的。

class Contacts(models.Model):
    full_name = models.CharField(max_length=100,blank=True,default="")
    email = models.EmailField()
    phone = models.CharField(max_length= 16)
    address = models.CharField(max_length=255,blank=True,default="")
    message = RichTextField()

    def __str__(self):
        return self.email

现在,我应该如何在不创建联系人模型的情况下在没有 JsonField 的字典中发送这些字段数据?

标签: djangoapidjango-rest-frameworkslugdjango-jsonfield

解决方案


首先,这个问题不清楚。请以更清晰的方式提出您的问题。我希望下面的方法可以帮助你。

该字段保存数据,例如;

{"full_name":"John Doe", "email": "johndoe@doe.com", "phone":"XXXXXXXXXXX"}

您可以创建字典并分配给字段。您也可以像这样创建 json 数据;

json_example = json.dumps(full_name="John Doe, email="johndoe@doe.com, phone="XXXXXXXXXXX")

然后创建一个 Core 对象;

core = Core(example = json_example)
core.save()

推荐阅读