我在django中有一个进程列表(例如[[“ a”,“ b”,“ c”],[“ c”,“ d”,“ e”]]),并希望将此类数据保存在sql中。我在模型中为此类数据建立了一个类,如下所示。
class Results(models.Model):
batch_id = models.AutoField(primary_key=True)
batch_cola = models.CharField(max_length=1000)
batch_colb = models.CharField(max_length=1000)
batch_colc = models.CharField(max_length=1000)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
我只想知道如何在view.py函数中编辑编码以保存此类列表并检索此类列表?我需要检索到的数据仍可以像[[“ a”,“ b”,“ c”],[“ c”,“ d”,“ e”]]]。
这是我的工作,但是错误显示为“表XX_result没有名为owner_id的列”。
list
for t in list:
Results.objects.create(batch_cola=t[0], batch_colb=t[1], batch_colc=t[2])
data = Results.objects.filter(owner=request.user)
return render(request, "projects/results.html", {"datas": data})
答案 0 :(得分:0)
我不确定您的问题。
说我们有一个原始流程列表:
raw_process_list = [["a", "b", "c"], ["c", "d", "e"]]
还有一个流程模型:
from django.db import models
class Process(models.Model):
col_a = models.CharField(max_length=1000)
col_b = models.CharField(max_length=1000)
col_c = models.CharField(max_length=1000)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
在这里,有两个Django帮助器可以保存和检索这样的列表:
def save_raw_process_list(rp_list, user):
for raw_process in rp_list:
cols = dict(zip(['col_a', 'col_b', 'col_c'], raw_process))
Process.objects.create(owner=user, **cols)
def retrieve_raw_process_list(user):
return list(Process.objects
.filter(owner=user)
.order_by('id')
.values_list('col_a', 'col_b', 'col_c'))
然后,当您必须存储过程列表时,只需编写:
save_raw_process_list(raw_process_list, user)
当您必须找回它时:
raw_process_list = retrieve_raw_process_list(user)