Django反向关系名称提供的关键字argumen无效

2024-05-16 09:26:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下型号:

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

为什么我不能使用反向关系名称来设置它?你知道吗


Tags: nametruebasemodelsparamsitemlengthmax
2条回答

反向关系可用于查询相关项,但不能在尝试时使用它来设置对象。你知道吗

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

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

相关问题 更多 >