---
slug: "django-admin-で-charfield-を-list_filter-に指定する場合choices-をつけると早い"
title: "Django Admin で CharField を list_filter に指定する場合、choices をつけると早い"
description: "Django Admin の `list_filter` に `CharField` を指定すると遅いとき、`choices` 引数を付けると DISTINCT クエリが回避されて高速化される話。"
url: "https://www.ytyng.com/blog/django-admin-で-charfield-を-list_filter-に指定する場合choices-をつけると早い"
publish_date: "2021-03-30T12:05:09Z"
created: "2021-03-30T12:05:09Z"
updated: "2026-05-11T13:09:00.357Z"
categories: []
keywords: ""
featured_image_url: "https://media.ytyng.com/resize/20230812/4f04d5e47d58428aa45191f0a0ac5d4a.png.webp?width=768"
has_video: false
has_music: false
video_urls: []
music_urls: []
lang: "ja"
---

# Django Admin で CharField を list_filter に指定する場合、choices をつけると早い

<p>Django Admin で、list_filter に CharField を指定した場合、</p>
<p>その CharField に choices が指定されてない場合、全レコードの存在する値を distinct で持ってくるので、インデックスが無いとけっこう遅い。</p>
<p>その場合、choices が指定できるようなものなら、指定すると、SQLを出さなくなるので処理が非常に高速になる</p>
