python - Django Rest Framework:创建模型视图集中不需要的字段
问题描述
我有一个模型,它有一个显示它创建时间的字段,名为created_time
. 我不想created_time
在创建模型时被要求,但我希望它在从模型中检索到的数据中!
这是它的序列化器:
class ModelSerializer(ModelSerializer):
class Meta:
model = Model
fields = ['name', 'created_time']
这是它的视图集:
class ModelApiView(ModelViewSet):
serializer_class = ModelSerializer
def get_queryset(self):
return Model.objects.filter(user=self.request.user.id)
def perform_create(self, serializer):
serializer.save(user=self.request.user, created_time=datetime.now())
现在,根据get
请求,它会发送一个模型对象列表,其中包含name
并且created_time
是完美的。但是,当我发布一个要创建的新模型时,它只包含它的name
,它会向我发送以下错误消息:
{
"datetime": [
"This field is required."
]
}
解决方案
您可以通过在以下内容中指定该字段来使该字段不需要ModelSerializer
:
class MyModelSerializer(ModelSerializer):
created_time = serializer.DateTimeField(required=False)
class Meta:
model = MyModel
fields = ['name', 'created_time']
推荐阅读
- c# - Selenium - 以不同用户身份启动 Edge Chromium
- python - 替换 Numpy 数组 - Python
- c# - Mailchimp 不呈现变量
- html - 保证金未得到应用
- google-sheets - 具有一个主下拉菜单的电子表格公式,然后根据选择的菜单显示相关信息?
- javascript - Oracle apex 获取交互式报告行数
- python - websockets中的binance recv()挂起
- arrays - 对六进制数组元素进行分组
- vue.js - 将 null 设置为默认值时 DatePicker Vuetify 错误
- python - 比较两个数据框并输出新列