2010-08-24 12 views
0

Je ne comprends pas comment je peux « importer » (je ne sais pas la bonne terminologie, alors s'il vous plaît ne pas me crucifier à ce sujet) un foreignkey de 1 classe de modèle à un autre:Django Modèle ForeignKey 2

par exemple

class1 (models.Model): 
    variable1 = models.CharField() 
    variable2 = models.CharField() 

class2 (models.Model): 
    variable3 = models.CharField() 
    variable4 = class1.variable1 "imported" from class1 

J'ai maintenant toutes les données de variable1 de class1 disponibles dans class2. Je suppose que cela serait accompli par un ForeignKey.

Si je prends l'exemple de la documentation officielle de Django (voir ci-dessous), je n'obtiens pas ma réponse parce que:

  1. Pourquoi faut-il mentionner que l'autre modèle et non la variable que je crée de lui.

  2. Ce serait pour un futur modèle, où je ne connais pas encore les champs. Mais je connais déjà les champs. Encore une fois pas de variable, juste le modèle.

  3. Ce serait ce que je cherche. Mais c'est "importé" d'une autre application. Mais avec moi, c'est dans la même application.

ad 1.

class ForeignKey(othermodel[, **options])¶ 

ad 2.

class Car(models.Model): 
    manufacturer = models.ForeignKey('Manufacturer') 
    # ... 

class Manufacturer(models.Model): 
    # ... 

ad 3.

class Car(models.Model): 
    manufacturer = models.ForeignKey('production.Manufacturer') 

Merci!

Répondre

0

Si je comprends bien votre question.

Vous établissez la relation avec l'ensemble du modèle à l'aide d'une clé étrangère et non pas d'une seule zone. Vous avez donc accès à tous les champs, même si vous n'en voulez qu'un.

variable4 = models.ForeignKey (classe 1)

maintenant vous pouvez dire variable4.variable1 ou variable4__variable2 dans un queryset. Re point 2 - use variable4 = models.ForeignKey ('class1') si la classe1 n'est pas déjà définie Point 3 - inutile d'ajouter une application si modèle dans l'application en cours.

+0

Ok Merci! Alors, quel est Queryset. J'ai lu le nom plusieurs fois. Mais jamais vraiment compris. – MacPython

+0

@MacPython [Querysets] [1] est la méthode utilisée par Django ORM pour faire des requêtes SELECT. Je vous suggère d'essayer la première partie du [tutorial] [2] il se terminera par 2 liens vers les docs sur les parties DB de l'API. [1] http://docs.djangoproject.com/fr/dev/ref/models/querysets/ [2] http://docs.djangoproject.com/fr/dev/intro/tutorial01/ –

Questions connexes