我想解析excel&制作字典并连接具有相同user_id字典的模型(User)。 现在字典是
dict_data = {'user_id': 1,'nationarity': America, 'dormitory':'A', 'group': 3}
views.py中的模型是
user = User(user_id=rows[1],name_id=rows[2],age=rows[3],employee=rows[4])
如果我想将字典的数据添加到模型中,我应该像
一样写for data in dict_data:
User(**data)
但是如何连接字典的user_id&模特'一个?我应该写什么?
现在我写了
#coding:utf-8
from django.shortcuts import render
import xlrd
from app.models import User
book3 = xlrd.open_workbook('./data/XXX.xlsx')
sheet3 = book3.sheet_by_index(0)
headers = sheet3.row_values(0)
large_item = None
dicts = {}
for row_index in range(sheet3.nrows):
rows3 = sheet3.row_values(row_index)
large_item = rows3[1] or large_item
# Create dict with headers and row values
row_data = {}
for idx_col, value in enumerate(rows3):
header_value = headers[idx_col]
# Avoid to add empty column. A column in your example
if header_value:
row_data[headers[idx_col]] = value
# Add row_data to your data_dict with
dicts[row_index] = row_data
for data in dicts:
user1 = User.objects.filer(user_id = data['user_id']).exists()
if user1:
user1.__dict__.update(**dicts)
user1.save()
当我运行此代码时,
AttributeError: 'Manager' object has no attribute 'filer'
user1 = User.objects.filer(user_id = data['user_id']).exists()
我该如何解决这个问题?
答案 0 :(得分:1)
crashkernel
答案 1 :(得分:1)
更新:过滤器,而不是文件管理器。 另一个法术错误,你不是说英语的人吗?
您发布的 dict_data
是一个字典,您不应该像列表一样迭代它。
我想你的dict_data
是一个dict列表,所以:
for data in dict_datas:
user = User.objects.get(user_id=data['user_id'])
user.name_id = data['**']
...
user.save()
首先,在xecel& dict中使用user_id
获取用户对象,然后更改该值并保存。