2016-04-14 7 views
0

私は、名前、電話、電子メールなどを想定した入場フォームというカスタムモジュールを持っています。このフォームをwebsiteモジュールに追加する方法templatrを使用して、新しいリードにデータが自動的に作成されます。私はカスタムモジュールに情報を転送する必要がありますリードの代わりに。カスタムモジュールとodooウェブサイトとの統合

概要:カスタムモジュールにウェブサイトを関連付けるための指示。 ODOOで

class AdmissionForm(models.Model): 
    _name = 'admission.form' 


    name = fields.Char() 
    phone = fields.Integer() 
    email = fields.Char() 
    faculty = field.Many2one('res.faculty') 

答えて

1

あなたは作成の時にいくつかのタスクをperformeしたいときはいつでも、あなた必要がありますモデルでoverride create method(:admission.form)。

  1. オーバーライドcreate方法:

    みましょうあなたはその後、次の手順に従いだけadmission.formモデルのレコードの作成後にパートナーを作成したいと言います。

  2. 引数にsuperを呼び出し、結果に値を保持します。
  3. 今、あなたの仕事をしてください。
  4. return result

コードスニペット:場合

@api.model 
    def create(self, vals): 
    result = super(AdmissionForm, self).create(vals) 
    new_vals = dict(name=result.name, 
        phone=result.phone, 
        email=result.email, 
        is_company=1, 
        supplier=1, 
        customer=1, 
        ) 
    self.env['res.partner'].create(new_vals) 
    return result 

を使用すると、レコードの作成前にいくつかのタスクを実行したい場合は次の手順を実行します。

  1. オーバーライドメソッドを作成します。
  2. あなたの仕事をしてください。
  3. 引数はreturnです。superを呼び出してください。私は私の質問を編集しますが、それは古いものに戻す理由を知らない申し訳ありません@parakash

    @api.model 
    def create(self, vals): 
    new_vals = dict(name=vals.get('name'), 
           phone=vals.get('phone'), 
           email=vals.get('email'), 
           is_company=1, 
           supplier=1, 
           customer=1, 
           ) 
    partner=self.env['res.partner'].create(new_vals) 
    return super(AdmissionForm, self).create(vals) 
    
+0

。連絡先のページのようにウェブサイトにフォームを追加したいのですが。顧客がフォームに記入すると、新しいリードが自動的に作成されます –

+0

テンプレートを作成し、フォームを横に置き、データを処理するコントローラのURLを設定します。コントローラ上でrequest.envでモデルにアクセスできます[ 'admission.form']、 – prakash

+0

サウンド・ロジック・パラカッシュ!私はあなたのコントローラを使用したことのないexamplrを表示してください、それは非常に単純な名前フィールドが正常に動作することができます。事前にお礼します –

関連する問題