【发布时间】:2020-08-02 04:37:37
【问题描述】:
我有一个 Django Rest Framework 端点,外部方向其发送大量数据。因为它每秒运行大约 200 次插入,所以我检查了它所做的查询。我发现它实际上首先做了一个 SELECT 查询来检查是否有重复的 id。由于我认为不会有任何(或至少不会有很多)重复键,我想禁用该检查。所以我将这一行添加到我的序列化器中:
id = serializers.UUIDField(validators=[]) # Disable the validators for the id, which improves performance (rps) by over 200%
正如您在评论中看到的那样,它极大地提高了性能。但是,它的一个缺点是,如果实际上发布了重复的密钥,它会给出 500 错误,说
duplicate key value violates unique constraint
我怎样才能捕捉到这个数据库错误并返回一个简洁的响应而不是抛出这个 500 错误?
【问题讨论】:
标签: python django postgresql django-rest-framework