save address cascade for establishment
This commit is contained in:
parent
12b56da53a
commit
b6cf12f35c
|
|
@ -167,13 +167,9 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
|
|||
validated_data['slug'] = slug
|
||||
|
||||
if 'address' in validated_data:
|
||||
address_fields = validated_data.pop('address')
|
||||
address_instance = get_object_or_404(models.Address, id=address_fields['id'] or None)
|
||||
address_id = getattr(address_instance, 'id')
|
||||
|
||||
models.Address.objects.filter(id=address_id).update(**address_fields)
|
||||
|
||||
validated_data['address_id'] = address_id
|
||||
address = models.Address(**validated_data.pop('address'))
|
||||
address.save()
|
||||
validated_data['address_id'] = address.id
|
||||
|
||||
instance = super().create(validated_data)
|
||||
|
||||
|
|
|
|||
|
|
@ -223,11 +223,17 @@ class AddressBaseSerializer(serializers.ModelSerializer):
|
|||
class AddressEstablishmentSerializer(AddressBaseSerializer):
|
||||
"""Address serializer."""
|
||||
|
||||
id = serializers.IntegerField(required=True)
|
||||
id = serializers.IntegerField(required=False)
|
||||
street_name_1 = serializers.CharField(required=False, default='')
|
||||
street_name_2 = serializers.CharField(required=False, default='')
|
||||
number = serializers.IntegerField(required=False, default=0)
|
||||
postal_code = serializers.CharField(required=False, default='')
|
||||
city_id = serializers.PrimaryKeyRelatedField(
|
||||
source='city',
|
||||
queryset=models.City.objects.all(),
|
||||
write_only=True,
|
||||
required=True,
|
||||
)
|
||||
|
||||
class Meta(AddressBaseSerializer.Meta):
|
||||
"""Meta class."""
|
||||
|
|
@ -238,6 +244,7 @@ class AddressEstablishmentSerializer(AddressBaseSerializer):
|
|||
'street_name_2',
|
||||
'number',
|
||||
'postal_code',
|
||||
'city_id',
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user