2

私はpython Djangoフレームワークの世界から来ました.odooコントローラーでDjangoのようにモデルフォームをレンダリングできるかどうか疑問に思っています. 例えば:

class PartnerController(http.Controller):
     @http.route('partner/create')
     def create_form(self, **kw):
         model = request.registry['res.partner']
         form = auto generate html form view for the model
         return form

ir.ui.viewまたは、コントローラーから Web サイトに既に存在するものを自動的に表示する方法かもしれません 。

アイデアは、既に定義されたビューを再利用するか、毎回モデルごとにビューを書き換えないことです。

私はすでにウェブサイトビルダーについて知っていますが、モジュールに簡単に追加できるものが欲しいです.

誰かがすでにodoo8/9でそのようなことをしていますか?
前もって感謝します。

4

1 に答える 1

3

Odoo コントローラーはデータをクエリし、そのデータを使用してテンプレートをレンダリングできます。これは以下を使用して行われます。

return request.website.render("<XMLId-for-my-QWeb-view", {<data dict>})

例として、 Job List Web サイト ページを確認できます。

    # Render page
    return request.website.render("website_hr_recruitment.index", {
        'jobs': jobs,
        'countries': countries,
        'departments': departments,
        'offices': offices,
        'country_id': country,
        'department_id': department,
        'office_id': office_id,
    })

その後、データ ディクショナリを QWeb テンプレートで使用してレンダリングできます。この例では、使用されるテンプレートはwebsite_hr_recruitment.indexです。

QWeb ビューを使用する必要があることに注意してください。私の知る限り、通常のフォームとリスト ビューは、Web サイトのフロントエンドに配置できません。

于 2016-04-28T13:02:38.883 に答える