Django DRF ModelSerializer error validation relation field i get field required but all field has value in request data

создайте новый объект в Modelviewset create

сначала я создаю новое изображение obj и добавляю его id в запрос затем то же самое meta_tags собирает id в список и добавляет его в request

def create(self, request, *args, **kwargs):
    if hasattr(request.data , '_mutable') and not request.data._mutable:
        request.data._mutable = True
    request.data['translations'] = json.loads(request.data['translations'])
    request.data['meta_tags'] = json.loads(request.data['meta_tags'])

    if  len(request.FILES) and 'image' in request.FILES:
        image = request.data['image']
        img = Image.objects.create(file=image)
        request.data['image'] = img.id

    meta_objs = get_list_obj_m2m(MetaTag , request.data['meta_tags'])
    request.data['meta_tags'] = [tag.id for tag in meta_objs]

    serializer = self.get_serializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    category = serializer.save()

modelSerializer

   class CategorySerializer(TranslatableModelSerializer):
        translations = TranslatedFieldsField(shared_model=Category)
        image = ImageSerializer()
        meta_tags = MetaTagSerializer(many=True)

        class Meta:
            depth = 1
            fields = '__all__'
            model = Category

модель

   class Category(TranslatableModel):
         parent = models.ForeignKey('self',related_name='category_parent',on_delete=models.CASCADE,null=True,blank=True)
         image = models.OneToOneField('Image', on_delete=models.SET_NULL,null=True,blank=True)
         meta_tags = models.ManyToManyField('MetaTag',related_name='category_tags',null=True,blank=True)
         test_field = models.CharField(max_length=100)

создать новый объект Category в представлении с отношением

Вернуться на верх