所以,我曾经在同一个应用程序中有两个模型工作正常,但当我将两个模型移动到不同的类时,我似乎无法让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字段,现在没有,因为它的价值。
答案 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