Django многие ко многим модели не получают ни одной
Я занимаюсь проектом уже несколько дней и сегодня столкнулся с ошибкой. Я хотел написать об этом здесь, так как не имею представления, как ее решить.
Моя первая модель:
from django.db import models
# Create your models here.
class Video(models.Model):
title = models.CharField(max_length=100)
video_slug = models.SlugField(unique=True)
description = models.TextField(max_length=500)
image = models.ImageField(upload_to='images/' , blank=True, null=True)
video = models.FileField(upload_to='videos/', blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
category = models.ManyToManyField('categories.Category', blank=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return "/video/" + self.video_slug
class Meta:
verbose_name_plural = "Videos"
ordering = ['-created_at']
get_latest_by = 'created_at'
второстепенная модель:
class Category(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100)
category_slug = models.SlugField(max_length=100, unique=True)
image = models.ImageField(upload_to='category', blank=True, null=True)
description = models.TextField(blank=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
def get_absolute_url(self):
return "/category/" + self.category_slug
class Meta:
verbose_name_plural = "categories"
ordering = ['name']
и view.py
...
class VideoListView(ListAPIView):
queryset = Video.objects.all()
serializer_class = VideoSerializer
Когда я посылаю запрос get, я получаю следующее
[
{
...
"category": "categories.Category.None",
...
}
]
Что мне делать? Пожалуйста, помогите мне.
Я предполагаю, что ваша ошибка в том, что вы используете пустой Serializer и не включаете экземпляр queryset
. Так что что-то вроде этого решит вашу проблему:
queryset = Video.objects.all()
serializer_class = VideoSerializer(queryset, many=True)