Django 1.11 Json模型

时间:2019-01-26 00:38:42

标签: django django-models

我想创建一个Django模型数据库,其中包含一个对象,其中包含条目,例如报表中的清单。

JSON文件:

{
    'int id':{
        'description': string,
        'value': bool, # yes/no ... represented by true/false
        'remarks': string
    },
    .
    .
    .
}

这样,当我导入时:

data = filename.json
list ={}
with open('data', 'r') as read_file:
    raw_data = json.load(read_file)

i = 0
if i < len(raw_data): # Make sure we don't go out of bounds
    # Cycle thru data
    for id in raw_data:
        s = str(i)
        list[i] = {}
        list[i]['Description'] = raw_data[s]["Description"]
        list[i]['Value'] = raw_data[s]["Value"]
        list[i]['Remarks'] = raw_data[s]["Remarks"]
        i = i+1

...
...
...

class Report (models.Model):

    ...
    ... Other items like reporter's name, etc
    ...
    checklist = list{}

我要这样填充此模型。我可以在管理页面的“报告”模型下对其进行编辑。但是,我无法确定要使用哪种方法正确地做到这一点。我尝试了选择,但这不是我想要的。

编辑: 本质上,我希望能够为Django Administration创建这些区域,使其成为

的一部分

class foo (model.Models):

示例: example

为获得更好的分辨率: https://ibb.co/MZcJ2jB

这样我将拥有一个网站,非管理员用户可以在该网站上提交报告,并在需要时可以更改其选择。

1 个答案:

答案 0 :(得分:0)

请尝试以下代码。

data = {"description": "",
        "name": "",
        "last_name": ""}

model = ""
model += "class Person(models.Model):\n"

for key, value in data.iteritems():
    entity = "    {} = models.CharField(max_length=30)\n".format(key)
    model += entity

model += "\n"
model += "def __str__(self): \n"
model += "    return self.name"

print(model)

它将返回此。

class Person(models.Model):
    last_name = models.CharField(max_length=30)
    description = models.CharField(max_length=30)
    name = models.CharField(max_length=30)

def __str__(self): 
    return self.name

之后,只需将带有以下字符串的.py文件保存为文件。 希望对您有帮助。