gpt4 book ai didi

python - 将记录和字段列表保存到 django 模型中

转载 作者:行者123 更新时间:2023-12-01 00:54:45 24 4
gpt4 key购买 nike

我从网站管理员处收到此列表:

[['present', '2'],['present', '1'], ['study', '1'], ['study', '3'], ['present', '4'], ['study', '4'], 

第一个选项实际上是Rollcall模型中需要编辑的字段名称,第二个选项是用户ID。

现在我想将此列表保存到 Rollcall 模型中:

#models.py 
class Rollcall(models.Model):
student = models.ForeignKey(User)
present = models.BooleanField(default=False)
study = models.BooleanField(default=False)

所以我首先检查并找到特定用户在列表中具有的各个字段, 然后我将在模型中为一个用户保存所有这些字段。 我该怎么做?

--更新 1:这是 HTML 文件:

{% forstudent in students %}
<tr>
<td>{{student}} </td>
<td> <input type="radio" name="present_{{student.id}}" value="1"></td>
<td> <input type="radio" name="study_{{student.id}}" value="1"></td>
</tr>
{% endfor %}

我以这种方式获取数据并将它们放入我在这个问题的第一个问题中解释的列表中:

data_list = [key.split('_') for key in request.POST.keys()][1:]

每个学生都可以在场或缺席,可以学习或不学习。我的确切问题是:如何保存我所有学生的数据?是否有另一种方法可以在没有 data_list 的情况下解决这个问题或者任何其他方式来创建更好的data_list

最佳答案

尝试这样的事情:

l=[['present', '2'], ['present', '3'], ['present', '4'], ['study', '2']]
dic={}
for arr in l:
dic.setdefault(arr[1], []).append(arr[0])
for key in dic:
Rollcall.objects.create(present=True if 'present' in dic[key] else False,\
student=True if 'student' in dic[key] else False, \
study=User.objects.get(id=int(key)))

或者在创建字典后批量制作(dic):

final_objects = [Rollcall(is_present=True if 'present' in final_dic[key] else False,
is_study=True if 'study' in final_dic[key] else False,
student=User.objects.get(id=int(key)),
) for key in final_dic]
Rollcall.objects.bulk_create(final_objects)

关于python - 将记录和字段列表保存到 django 模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56310072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com