簡體   English   中英

Django TypeError:'bar'是此函數的無效關鍵字參數

[英]Django TypeError: 'bar' is an invalid keyword argument for this function

因此,我曾經在同一個應用程序中有兩個模型可以正常工作,但是當我將兩個模型都移動到不同的類時,我似乎無法使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

我在Django中使用mongodb。 我不明白為什么當他們在同一個應用程序上時,它可以完美地工作,但是現在不:/

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

我不太確定為什么會這樣,django docs中可能提到了一些東西,但是現在您可以提供__init__來保持它的正常工作-

對於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

對於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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM