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
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
Shell :
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'
Ici quand j'essai de récupérer le nom du groupe avec "ecole.group_id.name" cela ne fonctionne pas.

(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