Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
7101 Lượt xem

hi,

i am using odoo v9 in ubuntu 12.04,i created one custom module and from controller i write code for form submission after submit form i want to send mail to res.partner from odoo

my controller.py is


from openerp import http

from openerp.http import Controller, route, request

from openerp.addons.website.models.website import slug

from werkzeug.utils import redirect

from wtforms import Form, StringField, TextAreaField, validators, SelectField, DateField

class CreateMarraige(http.Controller):

    @http.route('/marraige/new/', website=True)

    def new(self, cr, uid, ids, context=None, **form_data):

        form = MarraigeForm(request.httprequest.form)

        if request.httprequest.method == 'POST' and form.validate():

             marraige = http.request.env['consulate.marraige']

             customer = http.request.env['res.partner']

            cust = customer.create({

            'name' : form_data.get('nm_of_husband', ''),

            'birthdate': form_data.get('birth_dt_hus', ''),

            })

            marraige.create({

                 'father_nm_of_husband': form_data.get('father_nm_of_husband', ''),

                 'mother_nm_of_husband': form_data.get('mother_nm_of_husband', ''),

                 'occupation_of_hus': form_data.get('occupation_of_hus', ''),

                 'age_of_hus': form_data.get('age_of_hus', ''),

                 'birth_place_hus': form_data.get('birth_place_hus', ''),

                 'nm_of_wife': form_data.get('nm_of_wife', ''),

                 'father_nm_of_wife': form_data.get('father_nm_of_wife', ''),

                 'mother_nm_of_wife': form_data.get('mother_nm_of_wife', ''),

                 'occupation_of_wife': form_data.get('occupation_of_wife', ''),

                 'age_of_wife': form_data.get('age_of_wife', ''),

                 'birth_dt_wife': form_data.get('birth_dt_wife', ''),

                 'birth_place_wife': form_data.get('birth_place_wife', ''),

                 'rep_of_husband': form_data.get('rep_of_husband', ''),

                 'rep_of_wife': form_data.get('rep_of_wife', ''),

                 'witness_of_hus': form_data.get('witness_of_hus', ''),

                 'witness_of_wife': form_data.get('witness_of_wife', ''),

                 'registrar': form_data.get('registrar', ''),

                 'cert_issued_by': form_data.get('cert_issued_by', ''),

                 'partner_id': cust.id,

             })

            message = ("Hello %s \n Below Prurchase Order is Delay Today: \n Supplier Name : %s \n Purchase Order Refereance :             %s \n Order Date : %s \n Delivery Date : %s \n Product Names : %s \n\n")

 

             vals = {'state': 'outgoing',

                         'subject': 'CVs',

                         'body_html': '<pre>%s</pre>' % message,

                         'email_to': rec.job_id.partner_id.email,

                         'email_from': 'vrstest123@gmail.com',

                }

                 email_ids.append(self.pool.get('mail.mail').create(cr, uid, vals, context=context))

                 if email_ids:

                     self.pool.get('mail.mail').send(cr, uid, email_ids, context=context)

 

            return redirect("/marraige_success/")

            return request.render('marraige_certificate.marraige_create', {'form': form})


after submit form it return error like

"

'CreateMarraige' object has no attribute 'pool'

"

please help how can i solve this error and send mail from controller

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Please use http.request.env['mail.mail'] instead of self.pool.get('mail.mail'). Your statement is like,

total_emails = http.request.env['mail.mail'].browse()

total_emails = total_emails + http.request.env['mail.mail'].create(vals)

total_emails.send()

Ảnh đại diện
Huỷ bỏ
Tác giả

hi i tried your solution error remove but still mail no send i set val is vals = {'state': 'outgoing', 'subject': 'Testing', 'body_html': '

%s
' % message, 'email_to': 'kartik@vrsweb.in', 'email_from': 'vrstest123@gmail.com', #'attachment_ids': [(6, 0, attachment_ids)], } total_emails = http.request.env['mail.mail'].browse() total_emails = total_emails + http.request.env['mail.mail'].create(vals) total_emails.send()
Tác giả

hi i want to use another email id so how can i set password,port and all details for sending mail

Tác giả

can you please explain that what we pass in "vals" currently my vals is look like vals = {'state': 'outgoing', 'subject': 'Testing', 'body_html': '

%s
' % message, 'email_to': 'kartik@vrsweb.in', 'email_from': 'vrstest123@gmail.com', }
Câu trả lời hay nhất

You will not able to use "self.pool" in controller, to access the models. Try following:

obj_model = request.env['model.name']

Hope this helps !!.

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 2 16
5578
0
thg 1 16
4779
0
thg 7 16
3843
1
thg 9 23
2294
3
thg 12 19
8186