Имам оглед, където правя следното -
def retrieve(self, request, pk=None):
queryset = MyClass.objects.all()
class_data = get_object_or_404(queryset, pk=pk)
serializer = self.get_serializer(class_data)
new_data = serializer.data.copy()
new_data["my_field"] = "updated info!"
serializer = self.get_serializer(data=new_data)
serializer.is_valid()
return Response(serializer.data)
Бих искал да не се налага да правя копие на данните на сериализатора, за да актуализирам информацията. Има ли начин за промяна на поле в сериализатор преди показване през изгледа?
редактиране -
serializer.data["my_field"] = "updated info!"
не работи, освен ако не направя копие.
Отговори:
1 за отговор № 1Ами простото решение е просто да зададете извлечения атрибут на обекта (class_data.my_field = "updated info!"
).