【发布时间】:2020-06-10 06:39:42
【问题描述】:
我为任务创建了一个简单的模型,“天”字段应该是一个从 0 到 6 的整数列表,具体取决于任务应该在一周中的哪几天完成。例如星期一、星期三和星期五将是 1,3,5
class Task(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
time = models.TimeField()
days = models.CharField(validators=[int_list_validator], max_length=16, blank=True)
序列化器如下所示:
class TaskCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ['name', 'time', 'days']
视图看起来像这样:
class TaskCreateAPI(CreateAPIView):
serializer_class = TaskCreateSerializer
def perform_create(self, serializer):
serializer.save(user=self.request.user)
当我在“天”字段中使用一些无效数据发出 POST 请求时,它不会引发任何错误:
{
"name": "Laundry",
"time":"22:30",
"days":"not an integer list"
}
如何验证我的 API 请求?如果在我执行 POST 请求时未验证模型字段,那么在模型字段中添加验证有什么意义?
【问题讨论】:
标签: django django-models django-rest-framework