我想创建一个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):
示例:
为获得更好的分辨率: https://ibb.co/MZcJ2jB
这样我将拥有一个网站,非管理员用户可以在该网站上提交报告,并在需要时可以更改其选择。
答案 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文件保存为文件。 希望对您有帮助。