I hope I'll be clear enough to explain my problem. In account module we have account.payment.term and account.payment.term.line model that are related with one2many relation:
class AccountPaymentTerm(models.Model):
    _name = "account.payment.term"
    _description = "Payment Term"
    line_ids = fields.One2many('account.payment.term.line', 'payment_id', string='Terms', copy=True, default=_default_line_ids)
    period = fields.Selection([('month', '1 Month'),], string='Period', required=True, default='month', help="Select here the period between payments")
    how_much = fields.Float()
    fixed_amount = fields.Float()
class AccountPaymentTermLine(models.Model):
    _name = "account.payment.term.line"
    _description = "Payment Term Line"
    payment_id = fields.Many2one('account.payment.term', string='Payment Terms', required=True, index=True, ondelete='cascade')I want to create a method in account.payment.term that creates automatically the payment term lines. This method should determine the number of slices number_of_slices = (self.how_much/self.fixed_amount) which will be the number of payment term lines. I tried this code for now:
def create(self):
    number_of_slices = (self.how_much/self.fixed_amount)
    if self.period == 'month':
        today = datetime.today()
        current_month = fields.Datetime(today.year, today.month, 1)
        i = 1
        while i <= number_of_slices:
            joker = {'value':'fixed', 
                     'value_amount':self.fixed_amount,
                     'days':30,
                     'option':'day_after_invoice_date',
                     'payment_id': self._origin.id}
            self.env['account.payment.term.line'].search([('payment_id','=',self.id)]).create(joker)
            i = i+1This method doesn't seem to work. I got this error for now:
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: account.payment.term(u'name', u'company_id', u'period', u'note', u'how_much', u'active', u'line_ids', u'fixed_amount')