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中添加部门,保持简单)正文中有一个HTTPPOST
部门id,端点应该看起来像HTTP/student/
(不要在URL中添加部门并保持简单)和一个HTTPPOST