2016-09-06 2 views
0

Я работаю в odoo9. Теперь мне понадобилось представление, которое позволяет пользователю выбирать партнера и получать его историю продаж.Как создать только представление в odoo9, которое не сохраняет данные в модели?

Теперь я создал модель «sale.history», но сохраняет выбранные данные как запись в db. Мне это действительно не нужно.

Как создать представление для этого.

Please also see this image.

ответ

0

У вас есть два варианта таких взглядов/отчетов.

  1. Использование TransientModel вместо Model для модели наследования. Записи временных моделей в базе данных будут удалены с помощью часто выполняемого задания cron. Почтовое сообщение PopUp/Wizard - хороший пример для этого.

  2. Напишите свой собственный отчет (представление базы данных) для заказа клиента. На самом деле для этого уже есть один отчет: Отчетность/Продажа/Анализ продаж. Модель для этого отчета - sale.report, если вы хотите знать, как это делается.

0

Помимо использования TransientModel (старый API) или AbstractModel (новый API) ... вы можете просто установить store свойство поля ложной, таким образом ваше поле никогда не будет сохраняться в базе данных, будет просто «полем обзора».

class sale_history(model.Model): 
    _name='sale.history' 

    partner = fields.Many2one('res.partner', store=False) 

поле партнер никогда не будет сохранена в базе данных

0

Вы можете использовать магазин = False на поле в модели (как danidee предложил).

Вы также можете перезаписать метод создания на модели.

Вопрос - в чем цель модели «sale.history»? Если он вообще не хранит данные, вам может быть лучше создать новое представление против «res.partner», а не создавать новую модель.