J'ai des tables Django comme les suivants (je l'ai retiré des champs non essentiels):Interrogation sur les tables de base de données
class Person(models.Model):
nameidx = models.IntegerField(primary_key=True)
name = models.CharField(max_length=300, verbose_name="Name")
class Owner(models.Model):
id = models.IntegerField(primary_key=True)
nameidx = models.IntegerField(null=True, blank=True) # is Person.nameidx
structidx = models.IntegerField() # is PlaceRef.structidx
class PlaceRef(models.Model):
id = models.IntegerField(primary_key=True)
structidx = models.IntegerField() # used for many things and not equivalent to placeidx
placeidx = models.IntegerField(null=True, blank=True) # is Place.placeidx
class Place(models.Model):
placeidx = models.IntegerField(primary_key=True)
county = models.CharField(max_length=36, null=True, blank=True)
name = models.CharField(max_length=300)
Ma question est la suivante. Si dans mon fichier views.py, une personne est référencée par son nom et que je souhaite connaître tous les lieux qu'elle possède en tant que QuerySet, que dois-je faire?
Je peux en arriver là:
person = Person.objects.get(name=name)
owned_relations = Owner.objects.filter(nameidx=nameidx)
Comment puis-je obtenir d'ici à la Place? Dois-je utiliser des méthodes de base de données?
Je ne suis pas sûr si je devrais utiliser ForeignKey pour, par exemple. Owner.nameidx.
Merci et excuses pour cette question extrêmement basique. Je ne sais pas comment apprendre les bases de requêtes de base de données, sauf en essayant, à défaut, demander SO, d'essayer à nouveau ... :)
Merci pour l'explication claire - cela va rendre la vie beaucoup plus facile :) – AP257