2016-03-28 8 views
0

many2oneフィールドを別のmany2oneフィールドに関連付けようとしましたが、エラーを返しました。 関連フィールドodooに参照IDが見つかりませんでした。8

は私が
jounral = field.Many2one('erp.journal', related="journal_item.journal 

が働い

を試してみましたが、データベースのアップグレード時に、私はエラー

journal.entriesで見つけjournal_id一切参照フィールドが存在しない受信、動作しませんでしたメソッドを作成する上で使用されます。ここで

は非常に最初に私のコード

class JournalItem(models.Model): 
_name = 'journal.item' 

name = fields.Char() 
journal = fields.Many2one('erp.journal') 
entries = fields.One2many('journal.entries', 'journal_item') 


class JournalEntries(models.Model): 
    _name = 'journal.entries' 

    #record Created but didn't work 
    @api.model 
    def create(self, vals): 
     vals['journal_id'] = self.journal_item.journal 
     return super(JournalEntries, self).create(vals) 

    #Error NoneType object has no attribute 'id' 
    @api.model 
    def create(self, vals): 
     for x in self: 
      x.journal_id = x.journal_item.journal 
      return super(JournalEntries, self).create(vals) 

    journal_item = fields.Many2one('journal.item') 
    journal_id = fields.Many2one('erp.journal') 

答えて

0

であるあなたはデコレータを実装する必要があります@apiデコレータの使用状況を、理解する必要があります。

@ api.modelにはレコードセットのリストがないため、ループできません。

これは、リレーショナルフィールドを定義することで簡単に実現できます。

class JournalEntries(models.Model): 
    _name = 'journal.entries' 

    journal_item = fields.Many2one('journal.item') 
    journal_id = fields.Many2one(comodel_name='erp.journal', related='journal_item.journal', string='Journal', readonly=True) 

Click here to read about @api decorators

+0

モジュールをアップグレードしながら、私は私はエラーを受信したようにそれが動作するこの方法を試みたが(非参照フィールドが存在しない「journal.entries」見つかり「journal_id」) –

+0

コメントうち第一の方法コードを作成しますモジュールをアップグレードし、__init__.pyファイルで問題のログを貼り付けてください。エラーは作成メソッドでのみ見えます。 –

関連する問題