ユーザーが雑誌のページにアクセスすると、そのユーザーが既にログインしている場合、現在ログインしているユーザーが特定の雑誌を購読できるようにするボタンが表示される必要があります。ボタンは匿名ユーザーには表示されません。
ユーザーがログインしたときにボタンが表示されるようになりましたが、ボタンをクリックしてもコントローラー機能が呼び出されません。
これがコントローラー関数の場合:
@auth.requires_login()
def subscribe():
mag_id = request.args(0, cast=int)
db.subscribe.insert(magazine=mag_id, subscriber=auth.user.id)
そして、これはビューの一部です:
<div>
{{=magazine.title}}
{{=magazine.description}}
</div>
<div>
{{ if auth.is_logged_in():}}
{{=A('subscribe', _class="btn_subscribe", callback=URL("subscribe", args=magazine.id))}}
{{pass}}
</div>
ボタンは次の<a>
ように表示されます。
<a href="#null" onclick="ajax('/myapp/default/subscribe/3',[],'me');return false">subscribe</a>
また、コントローラー関数が呼び出されることはなく、ユーザーがサブスクライブされることもありません。