2009-08-25 6 views
0

J'ai deux modèles,comment faire une page dans django

class A(models.Model): 

    id = models.AutoField(primary_key=True) 
    name = models.CharField(max_length=200) 
    type = models.CHarFIeld(max_length=200) 
    .. 
    .. 
    .. 

class B(models.Model): 
    a= models.ForeignKey(A) 
    state = models.CharField(max_length=200) 

maintenant quand je vois la page de classe A je veux un lien qui peut me montrer toutes les données relatives à b.

des suggestions

+1

"La page de"? Voulez-vous dire la page dans l'interface d'administration pour ces objets? Vous devriez vraiment être plus précis. –

+0

je veux une page dans l'interface admin seulement.Je peux l'afficher en utilisant inline mais les données sont énormes et puis il faudra du temps en économisant – ha22109

Répondre

1

Lorsque vous créez une relation, sur l'objet cible que vous avez automatiquement membre « set » qui vous permet de marcher la relation en arrière (voir django documentation).

Avec cela à l'esprit, vous pouvez utiliser dans votre modèle quelque chose comme:

{% for b in a.b_set %} 
    <!-- display data related to b --> 
{% endfor %} 
+0

je ne sais pas, mais il sera utile, thx, +1 :) – IProblemFactory

1

Je ne sais pas d'une façon de configurer l'administrateur de fournir pour vous, mais vous pouvez assez facilement pour extend the admin templates votre modèle A et fournissez vous-même les liens vers la page d'administration du modèle B. Selon les instructions, vous ferez quelque chose de similaire à ce que j'ai décrit ci-dessous.

Créer un modèle « change_form.html » en utilisant la convention suivante

 
[project]/ 
    templates/ 
     admin/ 
      [app name]/ 
       [model name]/ 
        change_form.html 

Ensuite, le contenu de votre change_form, vous pouvez étendre les modèles d'administration par défaut et personnaliser selon vos besoins. Par exemple, affichez une liste d'objets "b" avec un lien vers leur page d'administration.

{% extends "admin/change_form.html" %} 

{% block after_field_sets %} 
<ul> 
{% for b in a.b_set %} 
    <li><a href="../../[model b]/{{ b.pk }}/">{{ b }}</a></li> 
{% endfor %} 
</ul> 
{% endblock %} 
Questions connexes