Как преодолеть ситуацию, когда поле местоположения оказывается пустым в проверенных данных?

У меня есть модель:

class ListingPrice(Timestamps):    
    price = models.ForeignKey("Price", on_delete=models.CASCADE)
    location = models.ForeignKey("location", on_delete=models.CASCADE)

    class Meta:
        unique_together = ["price", "location"]

class Price(Timestamps):

    package = models.ForeignKey("products.Package", on_delete=models.CASCADE)
    locations = models.ManyToManyField("location", through="ListingPrice")
    price = models.DecimalField(max_digits=11, decimal_places=3)

с сериализатором:

class LocationSerializer(serializers.ModelSerializer):
    name = LocalizedField()

    class Meta:
        model = location
        fields = ['id', 'name']

class PriceSerializer(serializers.ModelSerializer):
    locations = LocationSerializer(many=True)

        class Meta:
            model = Price
        fields = ['package', 'locations', 'price']
        def create(self, validated_data):
             print("validated_data, validated_data)

и viewset:

class PriceViewSet(ModelViewSet):
    queryset = Price.objects.all()
    serializer_class = PriceSerializer
    ordering = ['id']
    permissions = {
        "GET": ["view_minimum_listing_price", ],
        "POST": ["add_minimum_listing_price", ],
        'PUT': ['update_minimum_listing_price', ],
        'DELETE': ['delete_minimum_listing_price', ],
    }

При тестировании я использую следующее:

data = {
            "price": 12,
            "package": self.package.id,
            "is_enabled": False,
            "location": [{'name': self.location.name, 'id': self.location.id}]
        }

response = self.client.post(path=self.url, data=data, format='json')

locations отображается как пустой dict в validated_data? Мне нужно поймать его и добавить в прайс с помощью locations.add. как это реализовать?

Вернуться на верх