2
我在我的應用程序中有幾個模型,因爲我會做一些視圖做同樣的事情(表格+表格顯示現有的記錄在我的模型中),但由於模型實現不同,在每種情況下都會有所不同,我想知道是否有可能使其具有通用性。通過模型字段在忍者模板中迭代
我GOOGLE了一下,無法找到任何與我的情況相關的東西。 我想什麼來實現:
在我看來,我想通過從我傳遞給模板的模型中的每個對象,例如:
return render_template('addstatus.html', form=form, statuses=Status.query.all(),
target_model="Status", fields=Status.__mapper__.c.keys())
但我想只有一個不管模型是什麼,所以我無法預先知道模型的字段,列的數量等等。
我想有這樣的事情在我看來:
{% for obj in objects %}
{% for field in obj.fields %} (not existing)
<h1> {{ field }} :: {{ obj.fields.field.value }}
{% endfor %}
{% endfor %}
有什麼事情可能嗎?我怎樣才能做到這一點?
看來要遍歷模型中所有已定義的列,然後使用結果自動創建表單。它看起來像是在模板所需的路上,但正在尋找如何遍歷列。我建議你看看[這些](http://stackoverflow.com/questions/2537471/method-of-iterating-over-sqlalchemy-models-defined-columns)[問題](http://stackoverflow.com/questions/2441796/how-to-discover-table-properties-from-sqlalchemy-mapped-object),它會告訴你如何做到這一點。那麼你只需要將這些想法結合在一起。 –
我其實不想創建表單。我想創建一個
對不起,我應該說「HTML」而不是「表單」。然而,同樣的想法也適用:你需要的唯一缺失的鏈接就是確定如何循環聲明式SQLAlchemy模型中的字段。那些其他問題告訴你如何能夠做到這一點。 –
回答
可以(可以通過繼承或通過的Monkeypatching)此方法添加到您的
db.Model
類:然後你可以使用
{% for col in obj.columns() %}
遍歷列名。來源
2013-10-07 20:38:49 ThiefMaster
我有一個類似的問題,並希望純粹基於Jinja2的東西。這將返回所有在「目標文件」表中的鍵/字段,以及工作很適合我:
這是你的示例代碼實現
來源
2017-01-11 09:01:48
相關問題