2010-01-18 7 views
1

J'ai fait quelques classes de modèles avec des types d'animaux de compagnie: Perroquet, Lapin, Chat, Chien et j'ai besoin de faire le modèle Boutique, où un champ sera lié pour quelques-uns de ces modèles. Ce champ montrera ce qui se vend en magasin. Puis-je établir une relation entre un objet modèle et quelques classes de modèle?Django - relation avec instances de modèle de classe

Si je ne peux pas, comment j'ai besoin de changer mon schéma?

ex:

1 Shop1 [Parrot, Lapin]

2 Shop2 [chat, chien, lapin]

Répondre

3

Si je comprends bien votre question, vous avez créé des classes de modèles représentant différents types de animaux de compagnie, et vous voulez associer des magasins individuels avec un certain nombre de ces classes.

Je suppose que vos définitions de modèle pour animaux ressemblent à ceci:

class Parrot(models.Model): 
    pining_for_fjords = models.BooleanField(default=True) 

Vous pouvez le faire en utilisant contenttypes:

from django.contrib.contenttypes.models import ContentType 
class Shop(models.Model): 
    pet_types = models.ManyToManyField(ContentType) 

parrot_type = ContentType.objects.get(app_label="myapp", model="parrot") 

// ManyToManyFields need to be added to already saved models 
my_shop = Shop.objects.create() 
my_shop.pet_types.add(parrot_type) 
Questions connexes