尝试从Django视图将数据保存到SQLite数据库时遇到问题。一般而言,我的方法如下,它打算将实例填充到循环中并最终保存它。
1)获取数据(字典)
2)实例化模型
循环-In
3)遍历字典以获取键,值对并将其保存到实例中
循环-出
4)保存实例
问题是我在for循环之后得到了一个空实例,而不是一个填充的实例。
现在的代码
models.py
class OptionsHomePage(models.Model):
option_a = models.IntegerField(choices=MINUTES_OPTIONS)
option_b = models.IntegerField(choices=HOURS_OPTIONS)
start_time_am_minutes = models.IntegerField(choices=MINUTES_OPTIONS, default=0)
start_time_am_hours = models.IntegerField(choices=HOURS_OPTIONS, default=0)
end_time_am_minutes = models.IntegerField(choices=MINUTES_OPTIONS, default=0)
end_time_am_hours = models.IntegerField(choices=HOURS_OPTIONS, default= 0)
视图注意:同义词是一本字典,在其中我将来自前端的数据映射到模型中它们各自的值
...
options = OptionsHomePage()
data_to_fill = request.GET.get('data_to_fill')
data_to_fill = json.loads(data_to_fill)
for k, v in synonyms.items():
try:
# print(data_to_fill[k])
data_name = synonyms[k]
value = data_to_fill[k]
options.data_name = value
print('{} - {} '.format(data_name,data_to_fill[k]))
except Exception as e:
print(e)
print(options)
options.save()
...
那里的打印语句,只是为了查看那里发生的事情,给了我以下内容:
end_time_pm_minutes - 10
delay_seconds - 11
screen_of_option - off
------------------------------
OptionsHomePage object (None)
------------------------------
好吧,谢谢!如果没有很好地解释或显示某些内容,请告诉我,我可以详细说明!
答案 0 :(得分:0)
它将起作用:
instance = ModelInstance()
allowed_fields = ['name', 'username' .... etc ]
for field, value in data_to_fill.items():
if field in allowed_fields:
setattr(instance, field, value)
instance.save()