我的序列化程序返回索引而不是实际字段
My serializer is returning index instead of the actual fields
我是 Django 的新手,我一直在尝试序列化名为 MoviesCategories
的模型对象。
class MoviesCategories(models.Model):
name = models.CharField(max_length=120, null=False)
def __str__(self):
return self.name
还有一个Movie
模型如下
class Movie(models.Model):
name = models.CharField(max_length=120, null=False)
thumbnail = models.CharField(max_length=120, null=False)
source_url = models.CharField(max_length=500, null=False)
duration = models.TimeField(default=timedelta(hours=2))
added_on = models.DateTimeField(auto_now_add=True)
category = models.ForeignKey(MoviesCategories, related_name="movies", on_delete=models.DO_NOTHING)
def __str__(self):
return self.name
class Meta:
ordering = ('added_on',)
我的MoviesCategoriesSerializer
看起来像这样
class MoviesCategoriesSerializer(serializers.ModelSerializer):
class Meta:
model = MoviesCategories
fields = ('name', 'movies')
当我这样做时,我从这个序列化程序中得到了什么
MoviesCategoriesSerializer(MoviesCategories.objects.first()).data
是
{'movies': [1, 2], 'name': 'Animations'}
我也希望得到电影的领域。我创建了一个 MovieSerializer
class MovieSerializer(serializers.ModelSerializer):
class Meta:
model = Movie
fields = ('name', 'thumbnail', 'source_url', 'duration')
但是我不知道如何 link 这两个这样的
MoviesCategoriesSerializer(MoviesCategories.objects.first()).data
returns我是第一类的所有电影
您需要将 MovieSerializer
添加为 MoviesCategoriesSerializer
字段:
class MoviesCategoriesSerializer(serializers.ModelSerializer):
movies = MovieSerializer(many=True, read_only=True)
class Meta:
model = MoviesCategories
fields = ('name', 'movies')
查看详情here。
我是 Django 的新手,我一直在尝试序列化名为 MoviesCategories
的模型对象。
class MoviesCategories(models.Model):
name = models.CharField(max_length=120, null=False)
def __str__(self):
return self.name
还有一个Movie
模型如下
class Movie(models.Model):
name = models.CharField(max_length=120, null=False)
thumbnail = models.CharField(max_length=120, null=False)
source_url = models.CharField(max_length=500, null=False)
duration = models.TimeField(default=timedelta(hours=2))
added_on = models.DateTimeField(auto_now_add=True)
category = models.ForeignKey(MoviesCategories, related_name="movies", on_delete=models.DO_NOTHING)
def __str__(self):
return self.name
class Meta:
ordering = ('added_on',)
我的MoviesCategoriesSerializer
看起来像这样
class MoviesCategoriesSerializer(serializers.ModelSerializer):
class Meta:
model = MoviesCategories
fields = ('name', 'movies')
当我这样做时,我从这个序列化程序中得到了什么
MoviesCategoriesSerializer(MoviesCategories.objects.first()).data
是
{'movies': [1, 2], 'name': 'Animations'}
我也希望得到电影的领域。我创建了一个 MovieSerializer
class MovieSerializer(serializers.ModelSerializer):
class Meta:
model = Movie
fields = ('name', 'thumbnail', 'source_url', 'duration')
但是我不知道如何 link 这两个这样的
MoviesCategoriesSerializer(MoviesCategories.objects.first()).data
returns我是第一类的所有电影
您需要将 MovieSerializer
添加为 MoviesCategoriesSerializer
字段:
class MoviesCategoriesSerializer(serializers.ModelSerializer):
movies = MovieSerializer(many=True, read_only=True)
class Meta:
model = MoviesCategories
fields = ('name', 'movies')
查看详情here。