Django TypeError:'bar'是此函数的无效关键字参数

时间:2014-10-11 10:40:01

标签: python django mongodb

所以,我曾经在同一个应用程序中有两个模型工作正常,但当我将两个模型移动到不同的类时,我似乎无法让ForeignKey工作。有问题的模型:

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()

我得到了

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

我正在使用mongodb和django。我不明白为什么它们在同一个应用程序上完美无缺,但现在却没有:/

我在旧的收藏中注意到foo文件有一个bar_id字段,现在没有,因为它的价值。

1 个答案:

答案 0 :(得分:0)

我不确定为什么会发生这种情况,django docs中可能会提到一些内容,但是现在你可以提供一个__init__来保持它的正常运行 -

for python 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

for 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