La création d'une Clé Étrangère dans Django Modèle
J'ai la suite dans ma Élève modèle. Je souhaite suivre la date de chaque point de donnée à chaque étudiant. L'idée serait donc que j'ai pu voir non seulement le nombre de points de chaque étudiant, mais aussi de voir la date de chaque point a été donné. Dans l'avenir, je veux voir la tendance des étudiants de points. Comment dois-je aller à ce sujet? Dois-je utiliser une Clé Étrangère dans une autre classe. Je suis nouveau sur ce merci pour la lecture.
class Student(models.Model):
CLASS_CHOICES = (
(u'Yoga','Yoga'),
(u'Spanish', 'Spanish'),
(u'French', 'French'),
(u'Dance', 'Dance'),
)
name = models.CharField(max_length=30)
points = models.IntegerField(max_length=4)
classname = models.CharField("Class Name",max_length=20, choices=CLASS_CHOICES)
Séparément, j'avais une question si c'est juste pour avoir
classname
comme un champ de l'Élève. Cela implique un élève ne peut jamais prendre une classe.OriginalL'auteur Zach | 2012-03-28
Vous devez vous connecter pour publier un commentaire.
Je pense que vous pouvez séparer les deux de la Classe (je suis en l'appelant "Cours", afin de ne pas entrer en conflit avec le Python idée de classe), et le suivi des points (c'est à dire, scores) de gagné.
Ensuite, l'élève peut prendre beaucoup de cours et d'obtenir une série de points (c'est à dire, les résultats des tests?) pour chaque cours.
OriginalL'auteur alan
Vous pourriez avoir quelque chose comme ceci:
Très facile à utiliser:
Je ne savais pas si tu voulais suivre les points par classe. Dans ce cas, il suffit d'ajouter un nom de classe pour le modèle de Point de.
Aussi, noter que le Point.creation_datetime sera automatiquement réglée sur la date et l'heure à laquelle le modèle est enregistré. Je viens de poster un modèle de base que vous pouvez personnaliser à vos besoins.
oui, c'est correct. Je voudrais voir la tendance pour chaque élève.
OriginalL'auteur jpic
Je voudrais faire un nouveau Document sur les Points qui a un champ datetime et de modifier les Étudiants à avoir une Référence au Document de Points, au lieu de points comme un IntegerField.
Si vous avez été en utilisant mongoengine, je vous recommande de prendre des Points un EmbeddedDocument et de l'intégrer dans de l'Étudiant.
Bon point. Je suis habitué à mongoengine et donc d'utiliser les EmbeddedDocuments. Ma réponse était que, mais j'ai réalisé que l'OP n'est pas à l'aide de mongoengine j'ai donc modifié ma réponse, mais a manqué de sortir la pièce de référence.
OriginalL'auteur Sid