2013-12-20 38 views
2

型號:輸出上傳字段中存儲在表中的文件的名稱?

db.define_table('files', 
       Field('course_id', 'reference course'), 
       Field('documentx_filename',unique=True), 
       Field('documentx','upload')) 

控制器:

def show_doc(): 
    rows = db((db.course.id == db.files.course_id) & (db.dept.id==db.course.dept_id)).select() 
    return dict(rows=rows) 

def create_doc(): 
    form = SQLFORM(db.files).process(next=URL('show_doc')) 
    if request.vars.documentx != None: 
     form.vars.documentx_filename = request.vars.documentx.filename 
    if form.process().accepted: 
     response.flash = 'form accepted' 
    elif form.errors: 
     response.flash = 'form has errors' 
    else : 
     response.flash = 'something still went wrong' 
    return dict(form = form) 

爲show_doc視圖文件:

<div><a href={{=URL('default', 'download', args=row.files.documentx)}}> file = {{=row.files.documentx_filename}}</a></div> 
<br /> 
{{pass}} 

現在如果我在現場把文件名 「documentx_filename」,那麼文件名是所示。

但是,如果我不把字段名稱放在「documentx_filename」字段中,並將其保留爲空而是上傳文件。 它應該複製上傳的文件的名稱,如控制器create_doc我把if語句,但它這樣做呢?

回答

2

您可以在原文件名保存在模型(http://www.web2py.com/book/default/chapter/07#Storing-the-original-filename

但是,假設你有相同的模型,在這個崗位:How can I join 3 tables and output all three together joined in web2py? 我想補充一個「頭銜」字段中模型定義:

db.define_table('files', 
       Field('title', unique=True, requires=IS_NOT_EMPTY()), 
       Field('course_id', 'reference course'), 
       Field('documentx','upload')) 

然後,在你看來,你可以這樣寫:

{{for row in rows:}} 
    <div><a href={{=URL('default', 'download', args=row.files.documentx)}}>row.files.title</a></div> 
{{pass}} 
+0

我編輯的問題,並提出一些更多的信息。現在我可以顯示文件的名稱,如果我們填寫該字段,但它會從文件中複製文件的文件名,如果該字段爲空,您可以查看一下。 – shunya

相關問題