我的models.py后需要的是Django的REST框架HTML表单的POST给错误消息此字段提交
class Genre(models.Model):
genre = models.CharField(max_length=200)
def __str__(self):
return self.genre
class Movies(models.Model):
popularity=models.DecimalField(max_digits=5, decimal_places=2)
director = models.CharField(max_length=200)
genre = models.ManyToManyField(Genre, blank=True, null=True)
score= models.DecimalField(max_digits=5, decimal_places=2)
name = models.CharField(max_length=200)
def __str__(self):
return self.name
这是我的串行和视图集中
# Serializers define the API representation.
class MoviesSerializer(serializers.ModelSerializer):
#genre = serializers.StringRelatedField(many=True)
genre = serializers.SlugRelatedField(queryset=Genre.objects.all(),many=True,slug_field='genre')
class Meta:
model = Movies
fields = ('popularity', 'director', 'genre', 'score','name')
# ViewSets define the view behavior.
class MovieViewSet(viewsets.ModelViewSet):
queryset = Movies.objects.all()
serializer_class = MoviesSerializer
# Routers provide an easy way of automatically determining the URL conf.
router = routers.DefaultRouter()
router.register(r'movies', MovieViewSet)
我能看到HTML POST表单登录为Superuser
。但在提交HTML POST
表单时收到错误消息This field is required
。代码中的错误是什么?感谢提前帮助。
你确定你的'Movie'对象有'Genre'对象吗? –
如何检查。我可以在'django'' admin'部分中创建一个新的'Movie'来选择一个或多个'Genre'对象 – curiousguy
也可以在一个'movie'上休息api调用我可以得到我选择的'Genre'对象。 '[ { “人气”: “1.89”, “导演”: “迪布”, “流派”: “测试1”, “test2的” ], “分数”: “2.80”, “name”:“Test Movie” } ]' – curiousguy