Django反向关系名称给出了无效的关键字参数错误

时间:2015-06-12 10:35:49

标签: python django django-models

我有以下型号:

  class Catalogue(Base):
        name = models.CharField(max_length=60)

        params = models.ForeignKey("Params", related_name="params_item", null=True, blank=True)

    class Params(Base):
        name = models.CharField(max_length=60)

但是当我这样做时:

Params.objects.create(params_item=object_cat, name="Test")

我收到错误:

params_item'是此函数的无效关键字参数

为什么我不能使用反向关系名来设置它?

2 个答案:

答案 0 :(得分:2)

你不能这样做,这不是你如何使用反向关系。你必须这样做而不是

...
param = Params(name='Some Param')
param.save()

catalog = Catalog(name='Some Catalog')
catalog.params = param
catalog.save()

然后您使用反向关系来查询与之相关的目录列表,如此

catalogs = param.params_item.all()

答案 1 :(得分:1)

反向关系可用于查询相关项目,但您无法在尝试时使用它来设置对象。

您需要创建参数,然后更新相关对象。

params = Params.objects.create(name="Test")
object_cat.params = params
object_cat.save()