PropsBase nested serialization applies parent include/exclude filters to child fields

Ouverte Adaptée aux débutants
#7,787 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@harsh21234i y travaille déjà.

Depuis le 10/11/2026.

  • #7788 par @harsh21234i — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python
Domaine
backend

Piste de recherche

Commencez dans packages/reflex-base/src/reflex_base/components/props.py, en particulier dans _convert_to_camel_case() et ses appels récursifs à PropsBase.dict(). Vérifiez comment include et exclude sont appliqués aux niveaux du Parent et du Child, puis exécutez ou ajoutez des tests ciblés pour la reproduction imbriquée de Child et Parent. Le travail est terminé lorsque les filtres du Parent sélectionnent ou excluent la propriété imbriquée, tandis que les champs du Child restent intacts sauf si un filtre imbriqué est explicitement fourni.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Description

PropsBase.dict(include=...) and PropsBase.dict(exclude=...) apply the parent object's field filters unchanged when recursively serializing nested PropsBase values. As a result, selecting or excluding a parent field can incorrectly remove every field from the nested object.

Reproduction

from reflex_base.components.component import field
from reflex_base.components.props import PropsBase


class Child(PropsBase):
    first_name: str = field()
    age: int = field()


class Parent(PropsBase):
    child: Child = field()


value = Parent(child=Child(first_name=A, age=1))
print(value.dict(include={child}))

Actual behavior

{child: {}}

The parent-level include={child} is passed into Child.dict(), where child is not a field, so all child fields are filtered out.

Expected behavior

{child: {firstName: A, age: 1}}

The parent filter should select the child property while nested serialization should retain the child's fields unless a nested filter is explicitly provided.

Relevant code

packages/reflex-base/src/reflex_base/components/props.py passes the same include and exclude sets into nested PropsBase.dict() calls in _convert_to_camel_case().

This also affects exclude, and can affect any component or integration that uses nested PropsBase values with selective serialization.

Langage dominant
Python
Étoiles
29k
Forks
1.8k
Merge moyen
2 j 22 h
PR mergées (30 j)
143

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de reflex-dev/reflex

Toutes les issues de reflex-dev/reflex

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.