【发布时间】:2018-04-13 20:03:53
【问题描述】:
我遇到的问题是我想用 json 值更新 Django 模型。问题是json中的一些值是一个包含多个数字的列表。
这是 json 的样子:
json = {'fields': {'resources': [], 'initiative': [8, 21, 22]}, 'pk': 81}
{'fields': {'resources': [], 'initiative': [5, 8, 22]}, 'pk': 82}
{'fields': {'resources': [], 'initiative': [8, 22]}, 'pk': 83}
{'fields': {'resources': [], 'initiative': [6]}, 'pk': 84}
def update_model():
for row in json:
Model.objects.filter(id=row['pk']).update(initiative_id=row['fields']['initiative'][0], resources_id=row['fields']['resources'][0])
我不知道如何让模型行在堆栈上正确间隔。
无论如何,当我运行它时,我得到“IndexError:list index out of range”大概是因为此方法只能处理具有 1 个值的列表。
我需要数组中的最高值来获取更新模型的资源和计划。
型号:
class Model(models.Model):
name = models.CharField(max_length=100, unique=True)
genre = models.ManyToManyField(Genre, blank=False)
platform = models.ManyToManyField(Platform, blank=True)
standard_type = models.ForeignKey(StandardType, default=SetDefaults.set_standard_type_default, blank=True)
owner = models.ManyToManyField(Owner, blank=True)
evaluated_by = models.ForeignKey(Evaluator, blank=True, default=SetDefaults.set_default_evaluator())
business_driver= models.ManyToManyField(BusinessDriver, blank=True)
initiative = models.ForeignKey(Initiative, null=True, blank=True)
solution = models.ManyToManyField(Solution, blank=True)
point_of_contact = models.ForeignKey(Contact, null=True, default=SetDefaults.set_default_contact, blank=True)
description = models.TextField(blank=True)
required_by = models.ForeignKey(LifecycleStage, null=False, default=SetDefaults.set_required_by_default, blank=True)
resources = models.ForeignKey(Resource, null=True, blank=True)
change_notes = models.TextField(null=True, blank=True)
change_date = models.DateField(null=True, blank=True)
is_active = models.BooleanField(default=True)
【问题讨论】: