python - 多对多字段不显示
问题描述
想要使用 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)
不知道为什么这最终会起作用,所以解释仍然很酷。
推荐阅读
- node.js - 如何获取安装了我的 npm 模块的项目的根目录?
- python - Python类中带前导下划线的变量和函数的行为
- image - 到对象网络摄像头 C920HD 的距离或使用 OpenCV calibrate.py
- python - 如何将自定义数据集拆分为训练和测试数据集?
- php - PHP 中的“注意:未定义的变量”。我该如何解决?
- erlang - 在生产中编译 Phoenix 时出错
- ipv6 - 获取 MTD IPv6 地址
- javascript - 对具有相同键的对象值求和
- sql - SQL 如何使用已创建表中的信息
- codeigniter - Plesk 禁止 403 获取引导样式(nginx)