diff --git a/apps/location/models.py b/apps/location/models.py index 6657cffa..339bd1a1 100644 --- a/apps/location/models.py +++ b/apps/location/models.py @@ -109,7 +109,7 @@ class City(models.Model): map_ref = models.CharField(max_length=255, blank=True, null=True) situation = models.CharField(max_length=255, blank=True, null=True) - gallery = models.ManyToManyField('gallery.Image', through='location.CityGallery') + gallery = models.ManyToManyField('gallery.Image', through='location.CityGallery', blank=True, null=True) objects = CityQuerySet.as_manager() diff --git a/apps/location/serializers/common.py b/apps/location/serializers/common.py index 4b0011d0..ff2b943a 100644 --- a/apps/location/serializers/common.py +++ b/apps/location/serializers/common.py @@ -57,37 +57,6 @@ class RegionSerializer(serializers.ModelSerializer): ] -class CitySerializer(serializers.ModelSerializer): - """City serializer.""" - region = RegionSerializer(read_only=True) - region_id = serializers.PrimaryKeyRelatedField( - source='region', - queryset=models.Region.objects.all(), - write_only=True - ) - country_id = serializers.PrimaryKeyRelatedField( - source='country', - queryset=models.Country.objects.all(), - write_only=True - ) - country = CountrySerializer() - - class Meta: - model = models.City - fields = [ - 'id', - 'name', - 'code', - 'region', - 'region_id', - 'country_id', - 'country', - 'postal_code', - 'is_island', - 'city_gallery' - ] - - class CropImageSerializer(serializers.Serializer): """Serializer for crop images for City object.""" @@ -198,6 +167,37 @@ class CityGallerySerializer(serializers.ModelSerializer): return attrs +class CitySerializer(serializers.ModelSerializer): + """City serializer.""" + region = RegionSerializer(read_only=True) + region_id = serializers.PrimaryKeyRelatedField( + source='region', + queryset=models.Region.objects.all(), + write_only=True + ) + country_id = serializers.PrimaryKeyRelatedField( + source='country', + queryset=models.Country.objects.all(), + write_only=True + ) + city_gallery = CityGallerySerializer(many=True, read_only=True) + # country = CountrySerializer() + + class Meta: + model = models.City + fields = [ + 'id', + 'name', + 'code', + 'region', + 'region_id', + 'country_id', + 'postal_code', + 'is_island', + 'city_gallery' + ] + + class AddressBaseSerializer(serializers.ModelSerializer): """Serializer for address obj in related objects.""" diff --git a/apps/location/tests.py b/apps/location/tests.py index 3eaefd85..ec2d1437 100644 --- a/apps/location/tests.py +++ b/apps/location/tests.py @@ -162,6 +162,7 @@ class CityTests(BaseTestCase): response = self.client.post('/api/back/location/cities/', data=data, format='json') response_data = response.json() + print(response_data) self.assertEqual(response.status_code, status.HTTP_201_CREATED) response = self.client.get(f'/api/back/location/cities/{response_data["id"]}/', format='json')