Добавление строки в другую таблицу перед вставкой строки - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть модель тега, подобная этой:

class Tag(models.Model):
    tag = models.CharField(max_length=100)

, и модель изображения, подобная этой:

class Image(models.Model):
    image_name=models.CharField(max_length=40,unique=False)
    ...
    tags = models.ManyToManyField(Tag)

В настоящее время она принимает первичный ключ таблицы тегов в массиве.вместо строковых значений, таких как:

{
    "image_name" : "abc.png",
    "tags" : [1, 2] 
}

Однако я хочу иметь возможность создать новое изображение с запросом POST с несколькими тегами, что-то вроде этого:

{
    "image_name" : "abc.png",
    "tags" : ["logo", "abc"] 
}

КогдаЯ делаю это, я хочу, чтобы логотип и abc вставлялись в таблицу тегов автоматически.

Является ли ManyToManyField правильным способом сделать это?Если да, то как этого добиться?

1 Ответ

0 голосов
/ 27 декабря 2018

По умолчанию вложенные сериализаторы доступны только для чтения.Если вы хотите поддерживать операции записи во вложенном поле сериализатора, вам нужно создать методы create () и / или update (), чтобы явно указать, как должны сохраняться дочерние отношения

Источник: https://www.django -rest-framework.org / api-guide / Relations / # Writable-nested-serializers

...