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

Django reverse relationship name gives invalid keyword argument error

我有以下型号:

  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' 是此函数的无效关键字参数

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

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

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

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

你不能这样做,那不是你使用反向关系的方式。你必须这样做

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

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

然后你就可以像这样使用反向关系查询与其相关的目录列表

catalogs = param.params_item.all()