У меня есть модель просмотра:
class ExpenseViewSet(ModelViewSet):
permission_classes = [permissions.IsAuthenticated, HasMetis]
serializer_class = ExpenseSerializer
def get_queryset(self):
return Expense.objects.filter(recorded_by=self.request.user)
И сериализатор:
class ExpenseSerializer(serializers.ModelSerializer):
class Meta:
model = Expense
fields = ["flat_id", "flat_group_id", "description", "notes", "amount"]
Это поля, которые размещены в наборе, но их недостаточно для заполнения объектаполностью, поэтому мне нужно добавить еще несколько полей.
Я попытался переопределить сериализатор, например, так:
class ExpenseSerializer(serializers.ModelSerializer):
class Meta:
model = Expense
fields = ["flat_id", "flat_group_id", "description", "notes", "amount"]
def create(self, validated_data):
expense = Expense.objects.create(
flat_id=validated_data["operations_flat"],
flat_group_id=validated_data["operations_building"],
description=validated_data["description"],
notes=validated_data["notes"],
amount=validated_data["amount"],
recorded_by=self.request.user,
)
return expense
Это, однако, никогда не вызывается (проверяется путем наклеивания печатиоператор в функции создания - он никогда не выполняется).Видимо, это из-за этого вопроса: Сериализатор Django Rest Framework create () не запускается Это объясняет проблему, но не то, как решить мою проблему.
Я не увереннужно ли мне переопределить функцию is_valid сериализатора, функцию создания сериализатора или функцию создания набора данных, или что-то еще.