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)
Не знаю, почему это в итоге сработало, так что объяснение все равно было бы крутым.