django__django-16408
Com base na descrição do problema e nas dicas fornecidas, consigo compreender o problema e gerar o patch adequado. O problema é que, ao utilizar FilteredRelation de múltiplos níveis com select_related(), o local_setter está a definir incorr
- 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-16408 && curl -fsSL https://doutorai.pt/data/lib/skills__django-django-16408.md -o .claude/skills/django-django-16408/SKILL.mdCole este comando no terminal, na pasta do seu projeto, e o componente é instalado automaticamente.
Conteúdo
Based on the issue description and the hints provided, I can understand the problem and generate the appropriate patch. The issue is that when using multi-level FilteredRelation with select_related(), the local_setter is incorrectly setting the related object on the wrong model because the intermediate object in the join chain is not being fetched.
The hint clearly shows the fix: when `len(joins) > 2`, the `local_setter` should be a no-op function because there's no intermediate object to set the relation on.
Here's the patch based on the provided hints:
--- a/django/db/models/sql/compiler.
- 🔒 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.