[Answered ]-Serialize self-referential foreign key

1👍

You can serialize the slug by working with the article_previous_id field:

class ArticleSerializer(serializers.ModelSerializer):
    article_previous = serializers.CharField(source='article_previous_id')

    class Meta:
        model = Article
        fields = ('heading', 'slug', 'article_previous')

    # …

0👍

class ArticleSerializer(serializers.ModelSerializer):

    article_previous=serializers.SlugRelatedField(queryset=Article.objects.all(), slug_field="slug")

    class Meta:
        model = Article
        fields = ('heading', 'slug', 'article_previous')

    def create(self, validated_data):
        article_previous=validated_data.pop("article_previous")
        article=Article.objects.create(**validated_data, article_previous=article_previous)
        validated_data.update( {"article_previous" : article.article_previous.slug} ) 
        return validated_data

I think this solution has the advantage that the naming stays article_previous and is not changed to article_previous_id.

Leave a comment