J'essaie de sérialiser un queryset dans JSON en utilisant mon itérateur personnalisé. Sur les modèles, je détecte les champs du modèle et insérez-les dans la dicte JSON comme en avez besoin d'eux. P>
J'ai du mal à déterminer comment déterminer quels champs ont été différés dans le modèle à l'aide de la fonction de diffusion ou de queryset uniquement. p>
Y a-t-il un moyen et comment savoir quels champs sont différés et comment sauter sur eux? P>
3 Réponses :
Un peu enterré ... p>
QuerySet.Query.get_Loaded_field_Names () P>
Voici comment vous pouvez vérifier s'il est différé pour une instance de modèle réelle: de cette façon, il ne chargera pas ce champ de DB. Cette mise en œuvre est effectivement prise de Django.
https://github.com/django/django/blob/master/ django / db / modèles / base.py # l415 p> p>
La version actuelle de Django (1.9) a une méthode sur toutes les instances de modèle:
Cela semble être la mise en œuvre "officielle" de la réponse d'Alexey. P> instance.get_deferred_fields () code> p>
Avez-vous une idée de la manière dont vous obtenez cette liste pour une instance de modèle résultante? Quelque part dans l'instance modèle._meta ?? : S