Django rest framework 如何在DJANGO REST中保存外键值?

Django rest framework 如何在DJANGO REST中保存外键值?,django-rest-framework,python-3.6,django-serializer,django-2.1,Django Rest Framework,Python 3.6,Django Serializer,Django 2.1,假设我有如下模型 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) 现在,每当我创建学生实例时,我需要设置学

假设我有如下模型

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)
现在,每当我创建学生
实例时,我需要设置
学生的
部门(已创建)

哪一个是最佳实践

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

最好将敏感数据(如ID)作为Post请求发送,而不是作为URL参数传递。如果您确实想在URL中传递数据,请使用而不是ID


此外,您还可以使用保存数据,最好将敏感数据(如ID)作为Post请求发送,而不是作为URL参数传递。如果您确实想在URL中传递数据,请使用而不是ID


此外,您还可以使用保存数据。在这种情况下,最好在正文中发送部门id,并尽可能简单地保存端点

{base}/api/student/
向该端点发送HTTP POST

{
    "department_id":"",
    .
    .
}

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

在这种情况下,最好在正文中发送部门id,并使端点尽可能简单

{base}/api/student/
向该端点发送HTTP POST

{
    "department_id":"",
    .
    .
}

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

主体中的部门id,端点应该看起来像
/student/
(不在URL中添加部门,保持简单)正文中有一个HTTP
POST
部门id,端点应该看起来像HTTP
/student/
(不要在URL中添加部门并保持简单)和一个HTTP
POST