【问题标题】:saving model to database throw ValueError in django [closed]将模型保存到数据库在 django 中抛出 ValueError [关闭]
【发布时间】:2021-05-14 10:42:28
【问题描述】:

我有两个模范员工和部门。员工与部门有一对一的联系,例如

class Employee(models.Model): 
      department = models.ForeignKey(to=Department, on_delete=models.CASCADE)

但是当我尝试从休息请求创建对象时,它会抛出

ValueError:无法分配“{'id': 1, 'name': 'wrewrwerwe'}”:“Employee.department”必须是“Department”实例。

【问题讨论】:

  • 向我们展示相关视图..
  • 您能否分享您创建 Employee 模型对象的代码片段(可能的视图)。

标签: python django django-rest-framework


【解决方案1】:

我猜您发布的是 JSON,其中包含一个字段 department,这是您要链接的部门的主键(或代表部门的 JSON)。

在创建模型时,您不能为department 键提供部门的主键,而是提供Department 对象。

在你看来,你应该这样做:

# You have data like : {"department": {"id": 1, "name": "wrewrwerwe"}, with 1 the department's PK
department = Department.objects.get(pk=data["department"]["id"])
employee = Employee(department=department)
employee.save()   # Should work

【讨论】:

    猜你喜欢
    • 2016-07-07
    • 2020-07-11
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 2021-06-01
    • 2021-06-28
    相关资源
    最近更新 更多