Python Web2py-上载图像

Python Web2py-上载图像,python,web2py,Python,Web2py,我的控制器中有默认值.py: def images(): record = db.images(request.args(0)) form = SQLFORM(db.images, record, deletable=True, upload=URL('download'), fields=['image']) if request.vars.image!=None: # form.vars.image_filenam

我的控制器中有默认值.py:

def images():
    record = db.images(request.args(0))
    form = SQLFORM(db.images, record, deletable=True,
                  upload=URL('download'), fields=['image'])

    if request.vars.image!=None:
#         form.vars.image_filename = request.vars.image.filename
       form.vars.image_filename = "picture_spark_"+str(auth.user.id)
#             form.vars.image_filename = "default"
    if form.process().accepted:
        response.flash = 'form accepted'
    elif form.errors:
        response.flash = 'form has errors'
    return form

def dashboard():
    return dict(img_upload_form=images())
在我的视图
dashboard.html
中,我使用如下表单:

{{=img_upload_form}}
然而,问题是它不起作用。我选择了一个图像,但单击“提交”后,没有任何更改

感谢您的帮助

要解决这个问题, 我在我的
default.py
控制器中添加了一个
print record

我观察到的是,输出是
None

我的URL是
http://127.0.0.1:8000/Spark/default/home
。本质上,
home.html
dashboard.html
进行AJAX调用

现在,在我的控制器中,我将其定义如下:

def dashboard():
    return dict(img_upload_form=images())
我需要做的是为
home.html

def home():
    return dict(img_upload_form=images())
这让我能够成功上传图片

要解决这个问题, 我在我的
default.py
控制器中添加了一个
print record

我观察到的是,输出是
None

我的URL是
http://127.0.0.1:8000/Spark/default/home
。本质上,
home.html
dashboard.html
进行AJAX调用

现在,在我的控制器中,我将其定义如下:

def dashboard():
    return dict(img_upload_form=images())
我需要做的是为
home.html

def home():
    return dict(img_upload_form=images())

这让我能够成功上传图片

你说没有变化是什么意思?是否要使用图像记录ID作为第一个URL参数访问仪表板URL(即编辑现有记录)?否则,您将只插入新的图像记录。最初,我为应用程序中的所有用户添加了一张默认图片。所以,在这个场景中,我想我正在尝试“编辑”一个现有的图像。我所说的“无更改”是指:我选择图像,点击提交,页面刷新,没有更新。但是URL是什么?URL中是否有记录ID,表示您正在编辑现有记录而不是创建新记录?对,我理解您的意思。但是,URL中没有任何更改。我的URL是
http://127.0.0.1:8000/Spark/default/home
。选择图像并单击Submit后,它将变为
http://127.0.0.1:8000/Spark/default/home#
没有变化是什么意思?是否要使用图像记录ID作为第一个URL参数访问仪表板URL(即编辑现有记录)?否则,您将只插入新的图像记录。最初,我为应用程序中的所有用户添加了一张默认图片。所以,在这个场景中,我想我正在尝试“编辑”一个现有的图像。我所说的“无更改”是指:我选择图像,点击提交,页面刷新,没有更新。但是URL是什么?URL中是否有记录ID,表示您正在编辑现有记录而不是创建新记录?对,我理解您的意思。但是,URL中没有任何更改。我的URL是
http://127.0.0.1:8000/Spark/default/home
。选择图像并单击Submit后,它将变为
http://127.0.0.1:8000/Spark/default/home#