2014-10-11 73 views
0

所以,我曾經在同一個應用程序中工作正常,但是當我將兩個模型移動到不同的類時,我無法獲得ForeignKey似乎工作。有問題的模式:Django TypeError:'bar'是這個函數的無效關鍵字參數

from app1.models import Bar 

class Foo(models.Model): 
    name = models.CharField('...............') 
    bar = models.ForeignKey(Bar, editable=False, verbose_name=_('Bar')) 

但是當我嘗試:

>>>f = Foo(name='name', bar=existing_bar).save() 

我得到使用的MongoDB和Django

TypeError: 'bar' is an invalid keyword argument for this function 

林。我不明白它爲什麼在同一個應用程序中完美地工作,但現在不是:/

我注意到在我的舊集合中,foo文檔有一個bar_id字段,現在沒有,因爲它的價值。

+0

你能提供實際的模型,而不是模糊的版本? – skzryzg 2014-10-11 12:27:14

回答

0

我真的不知道爲什麼發生這種情況,有可能是在Django文檔中提到的東西,但現在你可以提供一個__init__以保持它的工作 -

的蟒蛇3+

class Foo(models.Model): 
    name = models.CharField('...............') 
    bar = models.ForeignKey(Bar, editable=False, verbose_name=_('Bar')) 

    def __init__(self, *args, bar=None, **kwargs): 
     super().__init__(*args, **kwargs) 
     self.bar = bar 

爲Python 2.6+

class Foo(models.Model): 
    name = models.CharField('...............') 
    bar = models.ForeignKey(Bar, editable=False, verbose_name=_('Bar')) 

    def __init__(self, *args, bar=None, **kwargs): 
     super(Foo, self).__init__(*args, **kwargs) 
     self.bar = bar 
相關問題