django rest framework model foreign key -
i have 2 models
class order(models.model): fields... class orderitem(models.model): fiels... order = models.foreignkey(order, related_name='items')
and have 2 serializers:
class createorderitemserializer(serializers.modelserializer): class meta: model = orderitem resource_name = 'order-item' fields = ('order', 'count') ..... class orderserializer(serializers.modelserializer): items = createorderitemserializer(many=true) class meta: model = order resource_name = 'order' fields = ('id','items')
i posted order items array this:
{ 'ordername': 'foo', 'items': [{ 'name': 'foo1', },{ 'name': 'foo2', }, ] }
but have error:
"order":["this field required."]
how can first create order later create items orderid?
my own answer question: first add extra_kwargs item serializer:
class createorderitemserializer(serializers.modelserializer): class meta: model = orderitem resource_name = 'order-item' fields = ('order', 'count') extra_kwargs = { 'order': {'required': false}, }
after add create method orderserializer:
def create(self, validated_data): items_data = validated_data.pop('items') order = order.objects.create(**validated_data) item in items_data: item_name = item['name'] item, created = orderitem.objects.get_or_create(order=order,name=item_name) return order
Comments
Post a Comment