【问题标题】:How to save Foreign Key values in DJANGO REST?如何在 DJANGO REST 中保存外键值?
【发布时间】:2019-03-25 18:03:38
【问题描述】:

假设我有如下模型。

class Department(models.Model):
   name = models.CharField(max_length=255)

class Student(models.Model):
   department = models.Foreignkey(Department, on_delete=models.CASCADE)
   name = models.CharField(max_length=255)

现在,每当我创建学生instance 时,我都需要设置StudentDepartment(which is created already)

最佳实践

i)  Sending the department id in URI like `departments/{pk}/students`
ii) sending department id in body parameter

【问题讨论】:

  • 正文中的部门 ID 和端点应类似于 /student/(不在 URL 中添加部门并保持简单),带有 HTTP POST

标签: django-rest-framework python-3.6 django-serializer django-2.1


【解决方案1】:

最好将 id 等敏感数据作为 Post 请求发送,而不是作为 URL args 传递。如果您真的想在 URL 中传递数据,请使用slugs 而不是 ID。

另外,你可以使用DRF model serializer来保存数据

【讨论】:

    【解决方案2】:

    在这种情况下,最好在正文中发送部门ID,并保持端点简单

    {base}/api/student/
    

    向此端点发送 HTTP POST

    {
        "department_id":"",
        .
        .
    }
    

    通过查看此端点,这清楚地显示了涉及student 对象的操作的端点,我想说它更接近REST 标准。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2017-11-16
      • 2015-03-27
      • 2011-04-26
      • 2016-10-04
      • 2018-05-03
      • 1970-01-01
      相关资源
      最近更新 更多