Не удается серилизовать поле с отношением "многие ко многим". Ошибок не выдается, а само поле при Get запросе в ответе не появляется.
Модели:
class Category(models.Model):
category_title = models.CharField(max_length=100, db_index=True)
category_slug = models.SlugField(max_length=100, db_index=True)
def __str__(self): return self.category_title
class Meta:
db_table = 'category'
verbose_name = 'Категория'
verbose_name_plural = 'Категории'
class Article(models.Model):
STATUS_CHOICES = (
('draft', 'Черновик'),
('published', 'Опубликован'),
)
article_title = models.CharField(max_length=200, verbose_name='Название')
article_slug = models.SlugField(max_length=100, unique=True)
article_text = RedactorField(verbose_name='Текст')
article_date = models.DateTimeField(auto_now_add=True, verbose_name='Дата')
article_likes = models.PositiveIntegerField(default=0, editable=False)
article_category = models.ManyToManyField(Category, verbose_name='Категории')
status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft')
emailed = models.BooleanField(default=False, verbose_name='Отправлен по email')
# Manager
objects = models.Manager() # Дефолтный менеджер
published = PublishedManager() # Кастомный менеджер
Сериализаторы:
from rest_framework import serializers
# App
from .models import Article, Category
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ('id', 'category_title', 'category_slug')
class PostSerializer(serializers.ModelSerializer):
categories = CategorySerializer(many=True, read_only=True)
class Meta:
model = Article
fields = ('id', 'article_slug', 'categories', 'article_title', 'article_text', 'article_date', 'article_likes')
По идее все должно работать, но по факту нет. ForeingKey работает при сериализации, а вот ManyToMany почему-то нет.