From 5ab19b79589306ddd2de5348c9e3550c7d9432f2 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Tue, 26 Jan 2021 16:16:45 +0100 Subject: [PATCH] supermarket category api working --- .../migrations/0105_auto_20210126_1604.py | 24 +++++++++++++++ cookbook/models.py | 4 +-- cookbook/serializer.py | 30 ++++++++++--------- 3 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 cookbook/migrations/0105_auto_20210126_1604.py diff --git a/cookbook/migrations/0105_auto_20210126_1604.py b/cookbook/migrations/0105_auto_20210126_1604.py new file mode 100644 index 000000000..2d4fe103b --- /dev/null +++ b/cookbook/migrations/0105_auto_20210126_1604.py @@ -0,0 +1,24 @@ +# Generated by Django 3.1.5 on 2021-01-26 15:04 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('cookbook', '0104_auto_20210125_2133'), + ] + + operations = [ + migrations.AlterField( + model_name='supermarketcategoryrelation', + name='category', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='category_to_supermarket', to='cookbook.supermarketcategory'), + ), + migrations.AlterField( + model_name='supermarketcategoryrelation', + name='supermarket', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='category_to_supermarket', to='cookbook.supermarket'), + ), + ] diff --git a/cookbook/models.py b/cookbook/models.py index 7f63326d2..55394c7a8 100644 --- a/cookbook/models.py +++ b/cookbook/models.py @@ -162,8 +162,8 @@ class Supermarket(models.Model): class SupermarketCategoryRelation(models.Model): - supermarket = models.ForeignKey(Supermarket, on_delete=models.CASCADE) - category = models.ForeignKey(SupermarketCategory, on_delete=models.CASCADE) + supermarket = models.ForeignKey(Supermarket, on_delete=models.CASCADE, related_name='category_to_supermarket') + category = models.ForeignKey(SupermarketCategory, on_delete=models.CASCADE, related_name='category_to_supermarket') order = models.IntegerField(default=0) diff --git a/cookbook/serializer.py b/cookbook/serializer.py index aeac42476..7b518cc7e 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -140,20 +140,6 @@ class UnitSerializer(UniqueFieldsMixin, serializers.ModelSerializer): read_only_fields = ('id',) -class SupermarketCategoryRelationSerializer(serializers.ModelSerializer): - class Meta: - model = SupermarketCategoryRelation - fields = "__all__" - - -class SupermarketSerializer(UniqueFieldsMixin, serializers.ModelSerializer): - categories = SupermarketCategoryRelationSerializer(many=True, read_only=True) - - class Meta: - model = Supermarket - fields = ('id', 'name', 'categories') - - class SupermarketCategorySerializer(UniqueFieldsMixin, WritableNestedModelSerializer): def create(self, validated_data): @@ -170,6 +156,22 @@ class SupermarketCategorySerializer(UniqueFieldsMixin, WritableNestedModelSerial fields = ('id', 'name') +class SupermarketCategoryRelationSerializer(serializers.ModelSerializer): + category = SupermarketCategorySerializer() + + class Meta: + model = SupermarketCategoryRelation + fields = ('id', 'category', 'supermarket') + + +class SupermarketSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + category_to_supermarket = SupermarketCategoryRelationSerializer(many=True, read_only=True) + + class Meta: + model = Supermarket + fields = ('id', 'name', 'category_to_supermarket') + + class FoodSerializer(UniqueFieldsMixin, WritableNestedModelSerializer): supermarket_category = SupermarketCategorySerializer(read_only=True)