Как сохранить значения внешнего ключа в DJANGO REST? - PullRequest
0 голосов
/ 25 марта 2019

Допустим, у меня есть модели, подобные следующим.

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)

Теперь мне нужно установить Department(which is created already) из Student всякий раз, когда я создаю студента instance.

что является лучшей практикой

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

Ответы [ 2 ]

1 голос
/ 25 марта 2019

в этом случае было бы лучше отправить идентификатор отдела в теле и сохранить конечную точку простой, как

{base}/api/student/

сделать HTTP-запрос POST к этой конечной точке

{
    "department_id":"",
    .
    .
}

Если взглянуть на эту конечную точку, то она ясно показывает конечную точку для операций с student объектом, я бы сказал, что она ближе к REST стандартам.

1 голос
/ 25 марта 2019

Всегда лучше отправлять конфиденциальные данные, такие как идентификаторы, как запрос Post, а не передавать как аргументы URL. если вы действительно хотите передать данные в URL, используйте вместо идентификатора slugs .

также можно использовать сериализатор модели DRF для сохранения данных

...