2016-07-14 7 views
0

私のodoo 9ウェブサイトの私のページの1つでは、ドロップダウンリスト(XMLビューで選択タグを使用しています)では、ユーザーが選択するオプションをどのように保存できますか?odooのドロップダウンリストからデータを保存する方法

コード:

<select type="text" name="delivery_time" class="form-control" t-att-value="website_sale_order.delivery_time"> 
    <option value="1">8 AM - 10 AM</option> 
    <option value="2">10 AM - 12 PM</option> 
    <option value="3">12 PM - 2 PM</option> 
    <option value="4">2 PM - 4 PM</option> 
    <option value="5">4 PM - 6 PM</option> 
</select 

モデル:あなたは、任意のアイデアなぜそれをそれが動作するように、私はすでにモデルで何かをやって試してみましたが、私はそれを得るように見えるカント

class odss_sale_order(models.Model): 
    _inherit = "sale.order" 

    delivery_time = fields.Char() 

を見ることができるように動作しませんか?

EDIT:thisと似た回答を探していますが、PHPの代わりにOdooがあります。

+0

私は受け入れられた答えがあることを知っています...しかし、フィールドの 'fields.Selection'型があることを知って欲しいと思います。あなたは純粋なウェブサイトを構築しようとしていますか? – danidee

答えて

1

ウェブページ内のモデルとやり取りする必要がある場合、おそらく、Pythonコードを含むことができるコントローラを作成して、モデル内(モジュール内またはOdoo内一般)。簡単なレベルでは、コントローラはモジュールのメインフォルダ(/mymodule/my_template_controller.py)に入り、init.pyファイル(import my_template_controller)で宣言できます。コントローラーで、テンプレートIDと一致するルートを設定し、コントローラーにポストするXMLページ上のフォームを作成し、Pythonコードを実行して、モデルからデータ行を保存または呼び出すことができます。最初

具体的には、コントローラでORMを使用して、モデルに新しい行を作成するためのコードは、され、フォーム:

<openerp> 
<data> 
<template id="sales_order" name="Sales Order"> 
<t t-call="website.layout"> 
    <form action='/odss/sales_order/' method="POST" enctype="multipart/form-data"> 
    <select type="text" name="delivery_time" class="form-control"> 
     <option value="1">8 AM - 10 AM</option> 
     <option value="2">10 AM - 12 PM</option> 
     <option value="3">12 PM - 2 PM</option> 
     <option value="4">2 PM - 4 PM</option> 
     <option value="5">4 PM - 6 PM</option> 
    </select> 
    </form> 
</t> 
</template> 
</data> 
</openerp> 

次に、あなたのコントローラに(何でもそれを呼び出すと、それをのinitを宣言の.py):

Odooは、プロセスを説明し、いくつかのまともなドキュメントを持っています。最初は、ビューとモデルの間の仲介者としてのコントローラを使用して、Webサイトを設定する方法である:

http://www.odoo.com/documentation/9.0/howtos/website.html

第二は、オブジェクトリレーショナルモデル(ORM)と呼ばれるものを使用する方法でありますコントローラからデータベースにデータを呼び出して保存することを可能にするOdoo固有のコードです。あなたは(経路を介して)自分のウェブページに接続されたコントローラを持っていたら、あなたは自分のフォーム上のルートにデータを投稿し、ORMを使用してコントローラでデータベースに保存することができます:

https://www.odoo.com/documentation/9.0/reference/orm.html

OdooモジュールをRuby on Railsのような他のModel/Controller/Viewアプリケーションと同様に構築することができ、実際はかなり機能的です。

+0

質問の編集をご覧ください。 –

+0

私は同じことをしたときにコントローラを必要としなかったのでドロップダウンではない別のフィールドのためにコントローラが必要ないので、答えが間違っている可能性があります。しかし、コントローラーで何かを変更する必要があると主張する場合は、質問を編集してコントローラーで何をすべきかをコメントにしてください。 –

+0

モデルに直接投稿する方法があるかもしれませんが、これはOdooを使ってPHPの例で行ったやり方です。これはOdooにもフォームデータを保存した方法です。 t-att-valueを使用するのは、Odoos Qwebテンプレート言語を使用しており、それらの値は、コントローラで生成された場合にのみ呼び出すことができます。 https:// www。odoo.com/documentation/8.0/reference/qweb.html –

関連する問題