【发布时间】:2021-10-21 02:13:42
【问题描述】:
我在模型中有一个 ArrayField:
from django.contrib.postgres.fields import ArrayField
field1 = ArrayField(
ArrayField(
models.TimeField(null=True, default=None),
size=2
),
size=7
)
我有 CreateAPIView 需要在序列化程序中验证 field1。
我在 APITestCase 类的 post 请求中发送以下数据来测试 API:
'field1': [
['10:00:00', '15:00:00']
],
在 Api 视图中,我收到的是字符串列表而不是列表:
'field1': ["['10:00:00', '15:00:00']"]
在序列化程序中使用 ListField 会出错,因为输入数据是 list[str] 而不是 list[list]。
field1 = serializers.ListField(
child=serializers.ListField(
child=serializers.TimeField(allow_null=True),
allow_empty=False
),
allow_empty=False
)
- 是否有另一种方式将 list[list] 作为输入数据发送到 post 请求?
- 有没有办法使用
serializers.ListField验证列表[列表]?
我读过this answer。当输入为 list[str]
时有效【问题讨论】:
标签: django-rest-framework listfield