2015-12-02 38 views
1

我有两种需要在同一条路径上“发布”的表单。用单瓶路线处理多个帖子

  1. 是“搜索”,这是对应用程序跨所有路线的基本模板和
  2. 这是“提交”,是具体到一个途径,并为孩子模板的一部分的一部分。

我怎么能区分两个“发布”?

在瓶中,我试图通过使用窗体的“名称”来挑选“POST”请求 - 代码应该是什么样子?

瓶:

@route('/pending', method=['GET', 'POST']) 
def pending(): 
session = db_session 
if (request.POST.get('name') == 'search_request'): 
    return "search" 
if (request.POST.get('name') == 'submit_asset'): 
    return "submit" 
    session = db_session 
    format_id = request.forms.get('submit_asset') 
    print format_id 
    result_format_metadata = session.query(FormatMetadata).filter(FormatMetadata.id==format_id).first() 
    result_format_metadata.id = format_id 
    result_format_metadata.stateid = 4 
    session.commit() 
    redirect("/pending") 

下面是从基础模板的形式,其为导航栏上的搜索功能,是所有路线:

 <form class="navbar-form navbar-left" role="search" method="post" > 
    <div class="form-group"> 
     <input name="search_request" type="text" class="form-control" placeholder="Search" > 
    </div> 
    </form> 

,这里是提交表单这是特定于/待定路线:

<form action="/pending" method="post"><button name="submit_asset" value="{{row.format_id}}"/>Submit</form> 

回答

0

Ok s Ø我发现:

@route('/pending', method=['GET', 'POST']) 
def musicvideopending(): 
session = db_session 
if request.forms.get('search_request'): 
    print "search" 
elif request.forms.get('submit_asset'): 
    print "submit" 
    format_id = request.forms.get('submit_asset') 
    print format_id 
    result_format_metadata = session.query(FormatMetadata).filter(FormatMetadata.id==format_id).first() 
    result_format_metadata.id = format_id 
    result_format_metadata.stateid = 4 
    session.commit() 
    redirect("/pending") 
else: 
    print "nothing" 
    date = "2015-11-19 23:14:06" 
    result_video = session.query(FormatMetadata).filter(FormatMetadata.id).all() 
    result_videoID = FormatMetadata.id 
    result_pending = session.query(Metadata).filter(Metadata.format_id==result_videoID).filter(FormatMetadata.stateid==1).all() 
    result_md_done = session.query(Metadata).filter(Metadata.format_id==result_videoID).filter(FormatMetadata.stateid==3).all() 
    result_date_24h = session.query(Metadata).filter(Metadata.format_id==result_videoID).filter(FormatMetadata.created_date).all() 
    output = template("pending", rows_pending=result_pending, rows_md_done=result_md_done, rows_per_24=result_date_24h, start_date=date, end_date=date) 
    return output 

Basicall我只是需要if语句移到函数的顶部,并使用request.forms.get确定哪些格式做后