django__django-13315
Com base no meu conhecimento do Django e na descrição do problema, posso construir a correção. O problema é que, quando limit_choices_to numa ForeignKey utiliza um objeto Q com uma junção (como Q(related__field=value)), a queryset resultant
- Skills
- Investigação em IA
- 2
Para que serve e como usar
Uma skill que ensina o Claude Code a executar bem tarefas de investigação em ia. É conhecimento empacotado que o modelo passa a usar sempre que for relevante.
- Instale a skill (comando acima).
- No Claude Code, descreva o que precisa - a skill ativa-se sozinha quando o contexto encaixa.
- Não precisa de decorar comandos: fala em linguagem natural e a skill faz o resto.
Instalar (Claude Code)
mkdir -p .claude/skills/django-django-13315 && curl -fsSL https://doutorai.pt/data/lib/skills__django-django-13315.md -o .claude/skills/django-django-13315/SKILL.mdCole este comando no terminal, na pasta do seu projeto, e o componente é instalado automaticamente.
Conteúdo
Based on my knowledge of Django and the issue description, I can construct the fix. The issue is that when `limit_choices_to` on a ForeignKey uses a Q object with a join (like `Q(related__field=value)`), the resulting queryset can have duplicate rows due to the JOIN operation. The fix is to add `.distinct()` to the queryset.
Looking at the issue description and comments:
1. The original fix using `.distinct()` was reverted because some custom model fields (like a custom PostgreSQL point type) couldn't compare for equality
2. The suggested solution is to use `.annotate()` with no arguments, wh
- 🔒 Conteúdo completo no plano Pro (7,99€/mês) -Precisa de ajuda com o Claude Code?
Pergunte ao Dr AI - explica em simples.
Precisa de uma solução à medida?
Não sabe por onde começar a usar IA no seu negócio? Receba uma avaliação gratuita e um plano à medida - sem compromisso.
Poupe horas todas as semanas com IA, sem complicações
O Doutor AI dá-lhe 1859 prompts de IA prontos a copiar, por indústria e em português simples - mais uma biblioteca técnica completa para quem quer ir mais longe.