【发布时间】:2020-07-16 13:49:09
【问题描述】:
我正在尝试为电影评论网站构建一个 rest-api。电影模型包含一个演员字段,它是一个列表字段,当使用 ModelViewSets 时,无法通过 HTML 发布 ListFields,所以我为所有列表字段设置了空白 = true,认为我将发出一个原始 PATCH 请求来更新空白字段,但我无法这样做。
models.py
class Movie(models.Model):
movie_name = models.CharField(max_length = 100, unique = True)
release_date = models.DateField(blank = True)
description = models.TextField(max_length = 500)
movie_poster = models.ImageField(blank = True)
directors = ListCharField(
base_field = models.CharField(max_length = 500),
max_length = 6 * 500,
blank = True
)
trailer_url = models.URLField()
cast = ListCharField(
base_field = models.CharField(max_length = 225),
max_length = 11 * 225,
blank = True
)
genre = ListCharField(
base_field = models.CharField(max_length = 225),
max_length = 11 * 255,
blank = True
)
avg_rating = models.FloatField(validators = [MinValueValidator(0), MaxValueValidator(5)])
country = models.CharField(max_length = 100)
language = models.CharField(max_length = 100)
budget = models.BigIntegerField(blank = True)
revenue = models.BigIntegerField(blank = True)
runtime = models.DurationField(blank = True)
序列化器
class MovieSerializer(ModelSerializer):
cast = ListField(
child = CharField(required = False), required = False,
min_length = 0
)
genre = ListField(
child = CharField(required = False), required = False,
min_length = 0
)
directors = ListField(
child = CharField(required = False), required = False,
min_length = 0
)
class Meta:
model = Movie
fields = '__all__'
我使用 djano-mysql 来添加 ListCharField 字段类型。
- https://i.stack.imgur.com/sC6Vw.png [没有列表字段值的数据]
- https://i.stack.imgur.com/W3xea.png [我尝试提出的请求]
- https://i.stack.imgur.com/OPeJn.png [我收到的回复]
【问题讨论】:
-
很抱歉,由于某些 stackoverflow 政策,我无法添加屏幕快照,帖子中存在一些链接,可将您带到图片。