2017-02-02 1 views
0

Je construis une application et il m'a été plus facile de penser à la réponse JSON que j'obtiendrai en tapant une URL spécifique et ensuite basé dessus maintenant j'essaye de construire mes modèles .créer/deviner les modèles sous-jacents à partir de la réponse JSON

JSON ressemble à ce qui suit:

{ 
    "idea": { 
    "title": "", 
    "description": "", 
    "tags": [ 
     "", 
     "", 
     "" 
    ], 
    "priority": "", 
    "PD": [ 
     { 
      "question": "what's your name?", 
      "answer": "" 
     }, 
     { 
      "question": "what's your address?", 
      "answer": "" 
     }, 
     ], 
    "TOC": [ 
     { 
      "question": "Age?", 
      "answer": "" 
     }, 
     { 
      "question": "Gender?", 
      "answer": "" 
     }, 
    "issues": [ 
     "issue1", 
     "issue2" 
    ], 
    "tasks": [ 
     "task1", 
     "task2" 
    ], 
    "note": "", 
    "image": [ 
     "base64(1)", 
     "base64(2)" 
    ] 
    } 
} 

J'ai commencé à créer des modèles comme suit (ce qui est plus ou moins la syntaxe Django pour les modèles, mais je suppose que la logique reste la même pour tout cadre):

class Tag(): 
    name = string; 
    idea = ForeignKey(Idea); 

class Prototype(): 
    base64 = string; 
    idea = ForeignKey(Idea); 

class Issue(): 
    name = string; 
    idea = ForeignKey(Idea); 
    task = ManyToMany(Task); 

class Task(): 
    name = string; 
    idea = ForeignKey(Idea); 

class Idea(): 
    title = string; 
    description = string; 
    priority = string; 
    note = string; 

Je ne suis pas sûr des pièces PD, TOC et HOW. Pourraient-ils être des attributs d'Idée ou pourraient-ils être des modèles distincts et dans ce cas, quelle pourrait être la relation entre eux?

Répondre

1

Ils pourraient être:

Vous pouvez simplement les garder comme JSON avec un champ JSON

ou ils pourraient être une relation OneToOne via un OneToOneField

class Idea(): 
    pd = OneToOneField(Question) 
    toc = OneToOneField(Question) 

class Question(): 
    question = 'foo' 
    other_question = 'bar' 
+0

JSONfield semble incroyable, je n Je ne suis pas au courant. Merci! – Nitish