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 в представлении с отношением