I have two models.
class Order(..):
...
class OrderImage(..):
order = ForeignKey('Order...)
And I have a form with dropzone.js
.
This form returns data suitable for creating an order
using just ViewSet
but it obviously doesn't create OrderImage
objects, even there are image[0]
, image[1]
etc. data in the POST request.
What's the best way to create OrderImages
alongside with the Order
in DRF
?
- modify dropzone output (didn't find the way)
- Modify request.data inside
ViewSet
(how?) - Modify OrderSerializer to create OrderImage objects?
How would you do that?
EDIT
class SubOfferImageSerializer(serializers.ModelSerializer):
class Meta:
model = SubOfferImage
fields = ['file']
class SubOfferSerializer(serializers.ModelSerializer):
images = SubOfferImageSerializer(many=True, required=False)
client_status_display = serializers.CharField(source='get_client_status_display', read_only=True)
system_status_display = serializers.CharField(source='get_system_status_display', read_only=True)
class Meta:
model = SubOffer
fields = [field.name for field in model._meta.fields] + ['client_approve_url',
'system_decline_url',
'client_status_display',
'system_status_display','images']
Now the problem is that I have raw images in the data, not serialized SubOrderImage objects.
I'm trying to change the input overriding perform_create
but it doesn't seem to be a best option. The better would be to do that inside serializer.