Bonjour,
Je poste ce message car j'ai un petit soucis avec ForeignKey.
Pour faire simple, je n'arrive pas à appeler la table Group de django en passant par une clé étrangère d'une autre table.
models.py
Shell :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 from django.db import models from django.contrib.auth.models import Group class School(models.Model): group = models.ForeignKey("auth.Group", on_delete=models.CASCADE) name = models.CharField(max_length=255) place = models.CharField(max_length=255,blank=True, null=True) describ = models.CharField(max_length=500,blank=True, null=True) date_add = models.DateTimeField(blank=True, null=True) def __str__(self): return self.name
Ici quand j'essai de récupérer le nom du groupe avec "ecole.group_id.name" cela ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 >>> from django.contrib.auth.models import User, auth, Group >>> from accounts.models import School >>> group = Group(name="ecole") >>> group.save() >>> ecole = School(name="ecole1", group_id=1) >>> ecole.save() >>> ecole.group_id.name Traceback (most recent call last): File "<console>", line 1, in <module> AttributeError: 'int' object has no attribute 'name'
(J'ai aussi un autre problème, dans mon modèle je nomme le champ groupe "group", mais dans ma base de donner, Django me le nomme "group_id" et je ne sais pas pourquoi. D'autant plus, qu'il passe le champs en "integer" )
J'ai beau chercher je n'arrive pas a comprendre sachant que j'utilise la doc Django.
Si vous avez une idée ce serait formidable
Partager