Как объявить JSON поля в Django модели? - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь создать свою первую Django mySQL модель, которая содержит поле JSON.

Я прочитал документы здесь , но они не Кажется, что демонстрируется пример того, как объявить модель, которая содержит несколько полей, включая 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]
        },
    ],
}

ОБНОВЛЕНИЕ 2-13-2020

Ответ на комментарий @ iklina c -

Спасибо за этот комментарий. Я вижу это:

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 в модели, определенной в другом месте. ;)

ОБНОВЛЕНИЕ 2-14-2020

Это теперь было решено с помощью комментариев к этому сообщению. Это работает:

from django_mysql.models import JSONField, Model

class CandyBars(models.Model):
    candy_bar_name = models.TextField()
    info = JSONField()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...