小编use*_*229的帖子

web2py检查是否存在于db insert或update中

我正在尝试执行检查,以便在插入记录之前查看记录是否存在,这样我就不会收到错误.如果它存在,我将更新一个字段.

mydb(mydb.myitems.itemNumber==int(row)).update(oldImageName=fileName) or 
mydb.myitems.insert(itemNumber=int(row),oldImageName=fileName)
Run Code Online (Sandbox Code Playgroud)

如果我尝试更新不存在的记录,那么它应该抛出1或者除了0之外的东西.但是在上面的情况下,它总是抛出0,所以插入不断发生.

这是为什么?

谢谢!

更新:添加模型:

mydb.define_table('myitems', 
                    Field('itemNumber', 'id',notnull=True,unique=True),
                    Field('oldImageName', 'string')
Run Code Online (Sandbox Code Playgroud)

mysql insert web2py

3
推荐指数
1
解决办法
4752
查看次数

Web2py未显示编辑或更新

我正在尝试使用SQLFORM.grid来显示项目的查询,并且有一个布尔字段将显示为表单上的复选框.我希望能够检查我想要移动的项目的复选框.提交时,它会对数据库进行更新,并执行将所选项目的图像文件复制到文件夹中的特殊功能.

我的SQLFORM.grid正常显示复选框,但我根本无法选中复选框.同样,我不知道我将如何拥有它,以便选定的项目将经历这两个步骤.

我甚至在SQLFORM.grid上设置了editable = True也设置了db.items.isMoved.writeable = True

以下是我的代码:

模型:

db.define_table('items', 
    Field('itemNumber', 'id'), Field('numSold', 'integer'),                          
    Field('imageName', 'string'), Field('isMoved','boolean')
    Field('timeStamp', 'datetime'))
Run Code Online (Sandbox Code Playgroud)

控制器:

class VirtualProfitField(object):
  def profit(self):
    return "$" + str(self.items.price * self.items.numSold)

db.items.virtualfields.append(VirtualProfitField())

def display_form():
  default_sort_order = [ebaydb.items.numSold]
  db.items.timeStamp.readable = False
  db.items.imageName.readable = False

  query = (db.items.numSold > 100) 
  default_sort_order = [db.items.numSold]
  form = SQLFORM.grid(query=query, orderby=default_sort_order, create=True, 
    deletable=True, editable=True, maxtextlength=64, paginate=25, csv=False,
    links=[dict(header=T('Profit'),body=lambda row: row.profit), 
    dict(header=T('Image'),
    body = lambda rowB: A(IMG(_src=URL('static', "images/images/"+ 
    rowB.imageName.replace('\\','/')), _width=50, _height=50), _href=URL('static', 
    "images/images/"+ rowB.imageName.replace('\\','/'))))]

   if len(request.args) > 1 …
Run Code Online (Sandbox Code Playgroud)

forms checkbox web2py edit

0
推荐指数
1
解决办法
1470
查看次数

web2py db query选择显示字段名称

当我有以下查询:

str(db(db.items.id==int(row)).select(db.items.imageName)) + "\n"
Run Code Online (Sandbox Code Playgroud)

输出包括字段名称:

items.imageName  
homegear\homegear.jpg
Run Code Online (Sandbox Code Playgroud)

如何删除它,以便不包括字段名称,只包括所选的图像名称.

我尝试引用它像列表[1]给我一个超出范围的错误和[0]我最终得到:

<Row {'imageName': 'homegear\\homegear.jpg'}>
Run Code Online (Sandbox Code Playgroud)

以上不是列表,那是什么对象,我该如何参考呢?

谢谢!

约翰

select web2py

0
推荐指数
1
解决办法
2964
查看次数

标签 统计

web2py ×3

checkbox ×1

edit ×1

forms ×1

insert ×1

mysql ×1

select ×1