gpt4 book ai didi

mysql - 从两个 SQLFORM.grid 中选择记录并将记录插入到第三个表中

转载 作者:行者123 更新时间:2023-11-29 12:44:29 24 4
gpt4 key购买 nike

我想在我的belongs表中插入多条记录,而这些记录是通过SQLFORM.grid从两个表中选择的。我的 table :

db.define_table('problem',
Field('title','string',unique=True,length=255),
format = '%(title)s')
db.define_table('tasks',
Field('title','string',unique=True,length=255),
format = '%(title)s')
db.define_table('belongs',
Field('task_id','reference tasks'),
Field('problem_id','reference problem'))

problem表中选择一些记录,并从tasks表中选择一条记录,然后插入到belongs表中。可以通过SQLFORM.grid实现吗?

def problemtask():
form=SQLFORM.grid(db.problem,selectable =lambda ids:insert(ids,ids1))
form1=SQLFORM.grid(db.tasks,selectable = lambda ids1 :insert(ids,ids1) )
return dict(form=form,form1=form1)
def insert(ids,ids1):

谢谢!

最佳答案

从一个表中选择一条记录,然后从另一个表中选择一些记录,最后将组合插入到第三个表中。

def showtask():
id=request.args(0,cast=int)#id为course_id
db.tasks._common_filter = lambda query: db.tasks.course_id ==id
links=[lambda row:A('createproblem',_href=URL("default","addproblem",args=[row.id])),
lambda row:A('showproblem',_href=URL("default","showproblem",args=[row.id]))]
form=SQLFORM.smartgrid(db.tasks,args=request.args[:1],links=links,linked_tables=[''],csv=False)
return dict(form=form)

def mulassignproblem():
taskid=request.args(0,cast=int)
form=SQLFORM.grid(db.problem,args=request.args[:1],selectable = lambda ids :mulproblem(ids,taskid))
return dict(form=form)

def mulproblem(ids,taskid):
problemids=ids
taskids=taskid
for problemid in problemids:
if db((db.belongs.problem_id==problemid)&(db.belongs.task_id==taskids)).count():
pass
else:
db.belongs.insert(task_id=taskid,problem_id=problemid)

关于mysql - 从两个 SQLFORM.grid 中选择记录并将记录插入到第三个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25635791/

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