diff --git a/cookbook/models.py b/cookbook/models.py index 183d9e4e..de087b85 100644 --- a/cookbook/models.py +++ b/cookbook/models.py @@ -125,9 +125,6 @@ class Keyword(models.Model): else: return f"{self.name}" - def __str__(self): - return self.name - class Unit(models.Model): name = models.CharField(unique=True, max_length=128) diff --git a/cookbook/serializer.py b/cookbook/serializer.py index 91a92f6e..02f83a6a 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -58,6 +58,11 @@ class SyncLogSerializer(serializers.ModelSerializer): class KeywordSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + label = serializers.SerializerMethodField('get_label') + + def get_label(self, obj): + return str(obj) + def create(self, validated_data): # since multi select tags dont have id's duplicate names might be routed to create obj, created = Keyword.objects.get_or_create(**validated_data) @@ -65,7 +70,7 @@ class KeywordSerializer(UniqueFieldsMixin, serializers.ModelSerializer): class Meta: model = Keyword - fields = ('id', 'name', 'icon', 'description', 'created_by', 'created_at', 'updated_at') + fields = ('id', 'name', 'icon', 'label', 'description', 'created_by', 'created_at', 'updated_at') read_only_fields = ('id',) diff --git a/cookbook/templates/forms/edit_internal_recipe.html b/cookbook/templates/forms/edit_internal_recipe.html index febf1046..09876552 100644 --- a/cookbook/templates/forms/edit_internal_recipe.html +++ b/cookbook/templates/forms/edit_internal_recipe.html @@ -66,7 +66,7 @@ :hide-selected="true" :preserve-search="true" placeholder="{% trans 'Select Keywords' %}" - label="name" + label="label" track-by="id" id="id_keywords" :multiple="true" @@ -409,7 +409,7 @@ if (this.recipe !== undefined) { for (let s of this.recipe.steps) { for (let i of s.ingredients) { - if (i.unit.id === undefined) { + if (i.unit !== undefined &&i.unit.id === undefined) { this.units.push(i.unit) } } @@ -428,7 +428,7 @@ if (this.recipe !== undefined) { for (let s of this.recipe.steps) { for (let i of s.ingredients) { - if (i.food.id === undefined) { + if (i.food !== undefined &&i.food.id === undefined) { this.foods.push(i.food) } }