J'essaie de générer un rapport sur 2 modèles/tables. Ici, ils sont:Django Foreign Key
class Members(models.Model):
username = models.CharField(max_length=30,null=True, unique=True)
email = models.CharField(max_length=100,null=True, unique=True)
name = models.CharField(max_length=30,null=True)
phone = models.CharField(max_length=30,null=True)
et
class Report(models.Model):
report_text = models.CharField(max_length=500)
reporter_id = models.IntegerField(db_index=True)
reported_id = models.IntegerField(db_index=True)
date_created = models.DateTimeField(null=True)
date_read = models.DateTimeField(null=True)
Les 2 tables ont évidemment ID d'incrémentation automatique comme la clé primaire.
Le rapport ressemblera à ceci:
Reported Phone | Reported Name | Report | Date Reported | Date Report Read
Tout le monde a rapporté sera dans la table membre. L'identifiant du reporter est l'identifiant du membre qui a enregistré le rapport. L'identificateur rapporté est l'ID de la personne sur laquelle se trouve le rapport. Je dois faire une jointure entre les 2 modèles pour obtenir le nom des membres et leur numéro de téléphone. Je ne peux pas tout à fait travailler sur le document. Je crois que je devrais faire le report_id et reporter_id les deux clefs étrangères au champ ID de clé primaire de table de membres. Comment puis-je faire cela et quel code va extraire le rapport pour toutes les entrées soumises par un journaliste spécifique?
Dois-je user_id = models.ForeignKey (Members) et faire la même chose pour reporter_id. Cela semble étrange car je ne spécifie pas le champ auquel le champ est étranger. L'ORM est censé le rendre plus facile (et c'est généralement le cas!). Je pourrais le faire avec une jointure en SQL mais cela m'a bloqué.
J'espère que la question a du sens.
Merci à l'avance
riches
Vous devriez vraiment avoir ' ForeignKey' champs où vous voulez indiquer une relation un-à-plusieurs entre vos modèles. –