ManyToManyField не отображается

Хочу использовать REST API для заполнения таблиц, но мое поле не отображается на странице API.

Модели (серия, состав):

class Series(models.Model):
    (...)
    def __str__(self):
        return self.title

class Roster(models.Model):
    (...)
    series = models.ManyToManyField(Series)
    (...)

    def __str__(self):
        return self.name

Сериализаторы:

class SeriesSerializer(serializers.ModelSerializer):
    class Meta:
        model = Series
        fields = ('id', 'title', 'icon')
        read_only_fields = ('slug',)

class RosterSerializer(serializers.ModelSerializer):
    series = SeriesSerializer(many=True, read_only=True)

    class Meta:
        model = Roster
        fields = ('id', 'name', 'number', 'primary_color', 'secondary_color', 'image', 'series')

Просмотров:

class SeriesView(viewsets.ModelViewSet):
    serializer_class = SeriesSerializer
    queryset = Series.objects.all()

class RosterView(viewsets.ModelViewSet):
    serializer_class = RosterSerializer
    queryset = Roster.objects.all()

Не знаю, где я здесь ошибся.

Оказалось, что все, что мне нужно было сделать, это удалить

series = SeriesSerializer(many=True, read_only=True)

и настройте мое поле series на

series = models.ForeignKey(Series, on_delete=models.CASCADE, blank=True, null=True)

Не знаю, почему это в итоге сработало, так что объяснение все равно было бы крутым.

Вернуться на верх