2017-01-20 5 views
0

初心者からweb2pyまで完全に...フォームの下部にあるチェックボックスを条件付きで表示させたいのは、ユーザーが管理者の場合のみです。管理者以外のユーザーには表示されないようにフィールドの名前を変更することができます。Web2py条件付きで判読可能なフィールド

私は...私はそれを必要としていることを確認していない、参照するループ変数を持っているforループ

## create all tables needed by Technical Request Form 
db.define_table('technical_request', 
Field('uuid', 'string', default=uuid.uuid4(), readable=False, writable=False), 
Field('firstname', requires=IS_NOT_EMPTY(error_message='All Fields are Required!'), label="First Name"), 
Field('lastname', requires=IS_NOT_EMPTY(error_message='All Fields are Required!'), label="Last Name"), 
Field('phone', requires=IS_NOT_EMPTY(error_message='All Fields are Required!'), label="Phone Number"), 
Field('email', requires=IS_NOT_EMPTY(error_message='All Fields are Required!'), label="Email"),  
Field('issue_name', requires=IS_NOT_EMPTY(error_message='All Fields are Required!'),label="Subject"), 
Field('about_issue', 'text', requires=IS_NOT_EMPTY(error_message='All Fields are Required!'), label="Description of issue "), 
Field('issue', 'upload', label="Attach Files "), 
Field('request_processed', 'boolean', default=False, readable = False), 
auth.signature) 

for field in db.technical_request: 
    if field.name == 'request_processed' and auth.has_group_membership("systemadmin"): 
    field.readable = True 

enter image description here

を使用していますこれは私が非表示にするチェックボックスです。 ...

  • 質問 *
フォローアップ0

条件付きでフィールドを追加する方法はありますか?

答えて

1

ループする必要はありませんに - あなただけの、その名経由で直接フィールドにアクセスすることができます。

db.technical_request.request_processed.readable = auth.has_group_membership("systemadmin") 

それともフィールドを定義するときにそれを実行します。私はこのアプローチを試してみた

Field('request_processed', 'boolean', default=False, 
     readable=auth.has_group_membership("systemadmin")) 
+0

が、それは動作していないようです。条件付きでフィールドを追加する方法はありますか? C言語では、コードの特定の部分をジャンプするプリプロセッサディレクティブ '#ifdef 'を持つことができます... – fifamaniac04

+0

また、読み込み可能なプロパティを' False'にハードコーディングしようとしましたが、それでも表示されます。 – fifamaniac04

+0

私は、 'read'と' writable'属性を無視する組み込みの 'appadmin'機能を使っていると思います(' admin'アプリケーションのように、システムの完全な制御権を持っている人だけを対象としています)。それ以外の場合は、表示されていないコードがあります。代わりに、[この機能](http://web2py.com/books/default/chapter/29/09/access-control#Application-Management-via-privileged-users--Experimental-)の使用を検討することもできます。 – Anthony

関連する問題