Discussion
Loading...

Post

  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
Joachim
@joachim@boitam.eu  ·  activity timestamp last week

Question Django :
Dans une app, je souhaite avoir un Model qui fait référence (façon ForeignKey) à des objets qui ne sont pas dans un Model, mais dans une source JSON en lecture seule, qui peut évoluer de son côté au fil du temps.

Je me dis que je dois construire un Model simulé, qui expose les objets du JSON à la relation avec les objets du Model de l'app.

Donc on aurait le Model A, stocké en bdd, qui aurait un champ ForeignKey faisant référence à un Model B. Le Model B n’aurait pas de vie, à part pour exposer ses objets au Model A (et au reste de l’app).

J’ai bon jusque là ?

Donc en gros il faut une étape de sérialisation du JSON au moment du démarrage de l’app, ou de l’instanciation du Model A, c’est ça ?
Pour ça, vous connaissez des guides un peu précis ?

#django

  • Copy link
  • Flag this post
  • Block
gawel
@gawel@mastodon.social replied  ·  activity timestamp last week

@joachim J'ai l'impression que t'es partit pour avoir 50 couches de magie illisible pour pas grand chose. Si c'est en lecture seul je ne vois pas l'intérêt. Autant stocker la valeur de clé dans un champ quelconque puis faire une property qui renvois ce que tu veux a partir de ce champs.

  • Copy link
  • Flag this comment
  • Block
Joachim
@joachim@boitam.eu replied  ·  activity timestamp last week

@gawel ok, ça pourrait le faire… il faut quand même que je récupère la valeur d'id de tous les objets du JSON à un moment, il faut que je trouve le meilleur moyen sachant que le JSON a sa vie de son côté (avec ajout ou suppression d'objets) 🤔

  • Copy link
  • Flag this comment
  • Block
frague59 ⏚
@frague59@pouet.chapril.org replied  ·  activity timestamp last week

@joachim @gawel si tu veux modéliser les objets dans le JSON tu peux utiliser des dataclass pour mapper les donnée, si possible frozen
Avec des slots s'est super efficace en mémoire.
La deserialisation reste le point compliquée en terme de perfs...

  • Copy link
  • Flag this comment
  • Block
gawel
@gawel@mastodon.social replied  ·  activity timestamp last week

@joachim peut-être avec https://pypi.org/project/jq/ mais en vrai c'est impossible de t'aider sans voir le bazar (et je ne dis pas que j'ai envie de le voir :p)

  • Copy link
  • Flag this comment
  • Block
Joachim
@joachim@boitam.eu replied  ·  activity timestamp last week

@gawel c'est pas (trop) moche, promis :)

  • Copy link
  • Flag this comment
  • Block
Tim Schilling
@CodenameTim@mastodon.social replied  ·  activity timestamp last week

@joachim I'm not sure if this blog post covers everything you're looking for, but it may give you some ideas: https://406.ch/writing/preserving-referential-integrity-with-json-fields-and-django/

Preserving referential integrity with JSON fields and Django - Matthias Kestenholz

  • Copy link
  • Flag this comment
  • Block
Joachim
@joachim@boitam.eu replied  ·  activity timestamp last week

@CodenameTim Thank you! I'll have to check out the libs that are used

  • Copy link
  • Flag this comment
  • Block
Log in

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.0 no JS en
Automatic federation enabled
  • Explore
  • About
  • Members
  • Code of Conduct
Home
Login