2016-04-14 5 views
0

У меня есть собственный модуль, называемый формой приема, с некоторыми полями, предполагающими имя, телефон, электронную почту и т. Д., Как добавить эту форму в модуль сайта, используя templatr, чтобы работать как контактная форма на странице контакта при заполнении данные автоматически создаются в новых выводах. вместо того, чтобы вести, я хочу, чтобы он передавал информацию в мой пользовательский модуль.Интеграция пользовательского модуля с веб-сайтом odoo

Описание: инструкция по привязке веб-сайта к пользовательскому модулю.

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


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

ответ

1

В ODOO Всякий раз, когда вы хотите performe некоторые задачи в момент создания , то вы должны override create method в модели (: admission.form).

Пусть говорят, что вы хотите создать партнер сразу после создания записи в admission.form модели, то выполните следующие действия:

  1. Переопределить create метод.
  2. Вызвать super с аргументом и сохранить его в результате.
  3. Теперь сделайте свою задачу.
  4. возвращение 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. Override создать метод.
  2. Выполняйте свою задачу.
  3. Вызвать super с аргументом и return.

    @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

@parakash жаль, что я изменить мой вопрос, но не знаю, почему это вернуться к старому. Я хочу добавить форму на веб-сайте так же, как и контактную форму на странице контакта. Когда клиент заполняет форму, новое начало автоматически создается –

+0

, поэтому создайте шаблон, поместите форму в сторону и установите URL-адрес вашего контроллера, где вы хотите обрабатывать данные. Теперь на контроллере вы можете получить доступ к модели по запросу.env [ 'admission.form'], – prakash

+0

Звучит логика паракаши! Может у, пожалуйста, покажите мне экзамен, я никогда не использовал контроллер, это может быть очень просто, только поле имени будет работать нормально. Заранее спасибо –