在使用 django_filters 时如何从 URL 中删除或编辑过滤器字段

while using django_filters how to remove or edit filters field from URL

同时使用 django_filters url 生成如下:

http://127.0.0.1:8000/reports/?EmployeeId=SW1&start_date=07%2F28%2F2021&end_date=07%2F31%2F2021

我不想显示这些东西 "?EmployeeId=SW1&start_date=07%2F28%2F2021&end_date=07%2F31%2F2021"

只有身份证号码应该显示为

http://127.0.0.1:8000/reports/1

当您的表单使用 GET 方法时,它将传递 URL 中的变量。如果您在表单中切换到 POST 则不会。您定义的 url 是您的表单操作,将发送给所有查询的 URL 人(并且您还需要在 urls.py 中进行设置)。

您需要在您的表单中从 GET 切换到 POST,在您的视图中切换到 request.POST,并向您的表单添加一个 CSRF 令牌。可能还有其他安全问题需要考虑,因此请确保也进行研究。