Получение null в объекте объекта отношения "многие ко многим" django

Я сохраняю объект с отношениями "многие ко многим" в базе данных, но когда я получаю его, он возвращает мне ID этого реляционного объекта, но я хочу получить весь объект целиком, поэтому я добавил свойство в сериализатор и после этого он возвращает мне только object.name, а его значение равно null, я не знаю, почему он так себя ведет? Кто-нибудь может помочь?

views.py

queryset = Tag.objects.filter(project_id=project_id).all()
serializer = TagSerializer(queryset, many=True)
return Response(serializer.data)

serializers.py

class TagSerializer(serializers.ModelSerializer):
    class Meta:
        model = Tag
        # fields = '__all__'
        fields = ['id', 'name', 'description', 'singleline']

    singleline = SinglelineSerializer(read_only=True)

models.py

class Tag(models.Model): 
    name = models.CharField(max_length=255, default='')
    description = models.CharField(max_length=255, default='')
    singleline = models.ManyToManyField(Singleline)
   
    class Meta:
        db_table = 'tags'

A Tag может иметь many Singlelines, вам нужно работать с many=True, так как это коллекция:

class TagSerializer(serializers.ModelSerializer):
    singleline = SinglelineSerializer(read_only=True, many=True)
    
    class Meta:
        model = Tag
        fields = ['id', 'name', 'description', 'singleline']

Вы можете повысить эффективность представления, префетчируя отношение singleline и таким образом загружая все связанные Singleline оптом:

queryset = Tag.objects.filter(project_id=project_id).prefetch_related('singleline')
serializer = TagSerializer(queryset, many=True)
return Response(serializer.data)
Вернуться на верх