首页 > 解决方案 > Django 管理员删除所有记录错误请求 [400]

问题描述

我正在尝试删除 Django Admin 中的多条记录。如果我选择一个包含 1000 行的页面并删除,我会收到 Bad Request [400] 错误。

错误请求 (400)

单独删除行有效。

这仅在生产中发生。我对将调试变为 True 犹豫不决。

我要删除的模型对象:

class Case(models.Model):
    caseId = models.AutoField(primary_key=True)
    dataCheckContactId = models.ForeignKey(DataCheckContact, on_delete=models.DO_NOTHING , related_name="dchk")
    caseDteProg = models.DateTimeField(null=True, blank=True)
    caseIntComplete = models.IntegerField(null = True, blank = True, default = 0)
    caseDteStart = models.DateTimeField(null=True, blank=True)
    caseType = models.CharField(null = True, max_length = 36, blank=True)
    caseInputJSON = models.TextField(null = True, blank=True) # data prior to submission
    caseReturnJSON = models.TextField(null = True, blank=True) #submission data
    caseIntStatus = models.IntegerField(null = True, blank = True, default = 0) 
    caseBPMUuid = models.CharField(null = True, max_length = 36, blank=True)

    def __str__(self):
        return self.caseBPMUuid

将 Debug 设置为 True 是查看任何错误消息的唯一方法吗?

谢谢

编辑 1. 使用 Apache2 作为网络服务器。可能的请求大小瓶颈?如果粘贴到文本文件中,每行大约 20KB。

标签: pythondjangopython-3.xdjango-adminapache2

解决方案


Django 中有一个关于一个请求(POST 和 GET)可以提交的参数数量的默认设置,默认设置为 1000。

所以如果你希望能够一次提交超过 1000 个参数,请更改settings.DATA_UPLOAD_MAX_NUMBER_FIELDS为更高的值。

或者只是避免同时更改这么多行,使用自定义操作或批量命令来完成。

此外,发生这种情况时,会引发并记录错误(假设您已正确设置日志记录)。因此,检查服务器上的 Django 日志将使您能够将此视为SuspiciousOperation异常。


推荐阅读