0

これを機能させることができません。目的のページに移動しましたが、変数に問題があるようです。

views.py :

@view_config(http_cache=1,route_name='hoofdpagina', renderer='templates/hoofdpagina.pt')
def hoofdpagina(request):
page = DBSession.query(MyModel) #.filter_by(id='1').all()

if 'form.submitted' in request.params:
    name= request.params['name']
    page2=Page(name)
    DBSession.add(page2)
    return HTTPFound(location=request.route_url('view_page',pagename=name))
return dict(page=page) 


@view_config(route_name='diagnose', renderer='templates/diagnose.pt')
def diagnose(request):
    return request
    kak = ['test1','test2','test3t']
    content = {"test1","test2","test3"}
    return {'content' :content, 'test' :kak}

hoofdpagina.pt :

<form class="span12" action="/diagnose" method="POST"> 
    <table class="table table-hover">
        <thead class="header">
            <tr>
                <th>D Nr.</th>
                <th>Datum</th>
                <th>Patient</th>
                <th>Prior</th>                              
            </tr>
        </thead>
        <tr tal:repeat="Page page" >

                <td tal:content="Page.dosiernummer"></td>
                <td tal:content="Page.dosiernummer"></td>                                
                <td tal:content="Page.datum"></td>  
                <td tal:content="Page.naamPatient"></td> 
                <td tal:content="Page.prioriteit"></td>    
        </tr>
    </table>
</form> 

<form action="/diagnose" method="post">
    <input type="submit" value="Save" name="form.submitted" ></input>
    <label name="name">et werkt slet</label>
</form>

ページのすべての変数をテーブルに表示できます。しかし、送信ボタンを押すと、「名前」ラベルの内容を診断ページに取得できません。値を表示する方法がわかりません。

ps : 質問はこの投稿に基づいています: Pyramid app: How can I pass values into my request.route_url?

4

3 に答える 3

1

代わりに、何らかの入力が必要になります。

<input type="text" name="name" value="et werkt slet">

または、表示したくない場合は type="hidden" にします。

私はまだ Pyramid も学んでいますが、あなたのコードから、サブミットアクションがとにかく def hoofdpagina に投稿されるのではないかと思います。POST 処理を次の場所に移動する必要があると思います。

@view_config(route_name='diagnose', renderer='templates/diagnose.pt')
def diagnose(request):
if 'form.submitted' in request.params:
    name= request.params['name']
    page2=Page(name)
    DBSession.add(page2)
    return HTTPFound(location=request.route_url('view_page',pagename=name))
于 2013-03-04T21:22:37.077 に答える
0

init.pyで、URLディスパッチ(config.add_route)を追加する必要があります。URLからデータを取得して、このような別のページに渡すことができます。

于 2013-03-18T14:32:30.333 に答える
0

ソリューションは、次のような URL ディスパッチで動作しています。

_init_.py : _

config.add_route('diagnose1', '/diagnose1/{dosierid}')

ビュー.py

@view_config(route_name='diagnose1', renderer='templates/diagnose.pt')
def diagnose1(request):
    tabeldata=''
    dosierid = request.matchdict['dosierid']

これで、あるビューから別のビューへの ID を取得できました。

于 2013-03-18T15:10:24.963 に答える