Установить список данных в модели через APIView
У меня есть модель django, в которой я храню данные через пост запрос, в API View как мне иметь поле Array в модели django
Class MyModel(models.Model):
field_1 = ArrayField(models.CharField())
field_2 = ArrayField(models.CharField())
class MySerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('field_1', 'field_2')
class MyApiView(CreateAPIView):
def my_method():
validated_data = MySerializer.data
field_1 = validated_data.get('field_1', [])
field_2 = validated_data.get('field_2', [])
obj = serializer.save()
obj.field_1.append(field_1)
obj.field_1.append(field_2)
obj.save()
когда я добавляю данные в поле_1 в модели, оно сохраняется как список list field_1 = [['a', 'b', 'c']], но желаемый результат должен быть field_1 = ['a', 'b', 'c'], как я могу этого добиться
Вы получаете список списков, потому что вы добавляете списки field_1
и field_2
в obj.field_1
. На самом деле вам нужно расширить список obj.field_1
следующим образом:
obj.field_1.extend(field_1)
obj.field_1.extend(field_2)
obj.save()
Ор:
obj.field_1 += field_1
obj.field_1 += field_2
obj.save()