Создание модели в Django, поле которой имеет несколько других полей внутри - PullRequest
0 голосов
/ 08 мая 2020

Я новичок в Django и хотел бы развеять сомнения новичков. Скажем, у меня есть почтовый запрос к модели Scans в django.

Данные json для той же модели выглядят как

[{"id": 1, «результаты»: {«низкий»: 3, «средний»: 6, «высокий»: 7}, «компьютер»: «Windows», «отчет»: «да»]

Как должна выглядеть модель? Я не могу понять, какой тип поля я должен передать results.

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Вы также можете создать две модели Scans и Results и создать отношения между ними следующим образом:

class Scans(models.Model):
    machine = models.CharField(max_length = 100)
    # assuming that report is by default false
    report = models.BooleanField(default = False)
    results = models.ForeignKey(Results, on_delete = models.CASCADE) 


class Results(models.Model):
    low = models.IntegerField()
    medium = models.IntegerField()
    high = models.IntegerField()
0 голосов
/ 08 мая 2020

Попробовать JSONField . Ваша модель должна выглядеть так.

from django.contrib.postgres.fields import JSONField
from django.db import models

class Scans(models.Model):
    machine = models.CharField(...)
    results = JSONField(default=dict)

PS Вам необходимо настроить вашу базу данных (в данном случае PostgreSQL)

PSS Если вы не хотите использовать PostgreSQL, вот JSONFIeld для MySQL

...