2009-07-21 4 views
0

j'ai des modèles simples avec des relations génériques de this example at the Django Project:Afficher inline liés à l'administration sur la forme du modèle avec GenericForeignKey

class Image(models.Model): 
    image = models.ImageField(upload_to="images") 

class ImageLink(models.Model): 
    image = models.ForeignKey(Image) 
    content_type = models.ForeignKey(ContentType) 
    object_id = models.PositiveIntegerField() 
    content_object = generic.GenericForeignKey("content_type", "object_id") 

class Product(models.Model): 
    name = models.CharField(max_length=100) 

Il est très simple de montrer en ligne ImageLink objets sur le formulaire d'administration de produit . Il est démontré in the Django docs.

Quelqu'un peut-il suggérer comment avoir lié ImageLinks en ligne sur le formulaire d'administration d'une image modèle?

MISE À JOUR IMPORTANTE: Mise à jour exemple de modèle, au hasard avec le précédent, comme Daniel Sayd, il n'est pas nécessaire de montrer les objets en ligne.

Répondre

1

Il est utilisé neccessary generic.GenericTabularInline pour montrer ImageLink objets en ligne sur le formulaire Produit, comme l'a démontré dans le Django docs.

Mais si nous devons montrer connexes ImageLink en ligne sur l'image forme, il peut être fait avec un enfant simple admin.TabularInline classe.

C'est une solution très simple. Je pense que je suis stupide de ne pas le deviner tout de suite.

0

Vous n'avez pas de produits connexes pour apparaître en ligne. Les clés étrangères génériques, comme les clés normales, sont un-à-plusieurs, le côté 'un' de la relation étant celui contenant le champ de clé étrangère. Donc, dans votre cas, vous n'avez toujours qu'un seul produit pour chaque image, il n'y a donc pas d'ensemble en ligne à afficher.

+0

Vous avez absolument raison. J'ai une erreur dans mon exemple. Et je sais comment résoudre mon problème maintenant. – ramusus

Questions connexes