繁体   English   中英

在 Django 中创建一个 model ,其字段中包含多个其他字段

[英]Creating a model in Django whose field has multiple other fields inside it

我对 Django 很陌生,想澄清一个菜鸟疑问。 假设我对 django 中的 model Scans有一个发布请求。

同样的 json 数据看起来像

[{“id”:1,“结果”:{“低”:3,“中”:6,“高”:7},“机器”:“Windows”,“报告”:“是”]

model 应该是什么样子? 我不知道应该给results什么字段类型。

试试JSONField 你的 model 应该是这样的。

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 这里是 MySQL 的JSONFIeld

您还可以创建两个模型ScansResults并在它们之间创建如下关系

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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM