Обновление существующих данных путем загрузки файла с помощью django-rest-framework
Я могу нормально добавлять данные, но не могу обновлять существующие данные.
Я могу добавить новую запись, но не могу обновить записи с теми же name
в импортированных данных.
Что мне делать?
class CategoryUploadView(APIView):
authentication_classes = [OAuth2Authentication]
permission_classes = [AllowAny]
parser_classes = [MultiPartParser]
def post(self, request):
file_obj = request.FILES['file']
decoded_file = file_obj.read().decode('utf-8').splitlines()
reader = csv.DictReader(decoded_file)
for row in reader:
serializer = CategorySerializer(data=row)
if serializer.is_valid():
serializer.save()
else:
return Response(serializer.errors, status=400)
return Response({"message": "Data imported successfully"}, status=200)
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model=Category
fields=['id', 'name']
def to_internal_value(self, data):
data = data.copy()
data['name'] = data.get('name', None).lower()
return super().to_internal_value(data)
class Category(models.Model):
name = models.CharField(max_length=32, unique=True)
description = models.CharField(max_length=255)
update_on = models.DateField(auto_now=True)
def __str__(self) -> str:
return self.name