首页 > 解决方案 > 如何在 Django 模型中声明 JSON 字段?

问题描述

我正在寻求创建我的第一个包含 JSON 字段的 Django mySQL 模型。

我已阅读此处的文档,但它们似乎没有展示如何声明包含多个字段(包括 JSON 字段)的模型的示例。我在 Google 和 SO 上进行了很多搜索,但还没有找到示例。

声明一个可以存储这样数据的模型的正确方法是什么?

candy_bar_name='Snickers',
info={
    'target_markets': [
        {
            'market_type': 'type_a',
            'included_markets': [array of strings]
        },
        {
            'market_type': 'type_b',
            'included_markets': [array of strings]
        },
        {
            'market_type': 'type_c',
            'included_markets': [array of strings]
        },
    ],
}

2020 年 2 月 13 日更新

回应@iklinac 的评论——

感谢您的评论。我看到这个:

from django_mysql.models import JSONField, Model

class ShopItem(Model):
    name = models.CharField(max_length=200)
    attrs = JSONField()

    def __str__(self):
        return self.name

...但我对此感到困惑:

    def __str__(self):
        return self.name

具有多个字段的模型如何返回单个字符串?我想这可能是一个在别处定义的模型中定义单个 JSON 字段的类。;)

2020 年 2 月 14 日更新

现在已经通过对这篇文章的评论的帮助解决了这个问题。这有效:

from django_mysql.models import JSONField, Model

class CandyBars(models.Model):
    candy_bar_name = models.TextField()
    info = JSONField()

标签: mysqljsondjango

解决方案


推荐阅读