我試圖做一個應用程序,我需要一些圖像的背景顏色根據「嚴重性」,紅色,黃色或綠色的「報告」進行更改。web2py - for循環和函數來改變背景顏色?
的視圖(index.html的):
歡迎{{= auth.user.first_name}}
{{爲在報告中報告:}}
類型=「文本/css">.eq_img {背景色:{{= bg_color(reports.severity)}(式中標記)
表與圖像類= eq_img
控制器(default.py):
。DEF設備():
報道=分貝()選擇(db.repo.ALL)
返回當地人()
模型(db.py):
db.define_table( '回購',
字段( '體', '文本',需要= IS_LENGTH(500,1),標記= 「報告」),
字段( '嚴重性',需要= IS_IN_SET([ '綠色' , '黃色', '紅色')),
字段( 'posted_on', '日期時間',可讀=假,可寫= FALSE),
字段( 'posted_by', '參考AUTH_USER',可寫=假),
def bg_color(severity):
如果嚴重性== 「紅」:
回報 '紅'
elif的嚴重性== 「黃色」:
回報 '黃'
其他:
return'green'
現在它總是返回列表中最後一個報告的顏色。我需要它找到最嚴重的報告,如果不是紅色,那麼黃色,然後是綠色。任何幫助非常感謝。
這正是我所需要的,謝謝。將嘗試編輯問題,以便更清楚一點,以供參考。如果我可以要求跟進;如果我在設備視圖中爲9臺設備配備了9張圖像的表格,那麼控制器有car_reported,house_reported等等,我需要重複每個設備的代碼嗎?例如。 car_max_severity = ...和car_severity_color = ...並且視圖將變爲#car_img {background-color:...?它可以工作,但我會以不太符合DRY標準的方式假設。 – artothief
你可能會讓它更幹。也許可以用「car」,「house」等鍵使max_severity變成一個字典。對於CSS,而不是'#car_img',也許可以使用'#car.eq_img','#house.eq_img'等。然後,一切都可以通過遍歷類別名稱完成。 – Anthony
謝謝。這將是完美的。最後一個問題,如果沒有一個設備的報告,代碼不會運行,因爲max_severity沒有參數。 – artothief