2009-08-25 8 views
0

Ich habe zwei Modelle,wie eine Seite in 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) 

jetzt machen, wenn ich die Seite der Klasse A sehe ich will einen Link, der mir alle Daten im Zusammenhang mit b zeigen kann.

Irgendwelche Vorschläge

+1

"Die Seite von"? Meinst du die Seite in der Admin-Oberfläche für diese Objekte? Du solltest wirklich spezifischer sein. –

+0

Ich möchte eine Seite nur in der Admin-Schnittstelle.Ich kann es inline anzeigen, aber die Daten sind riesig und dann wird es Zeit in Speichern – ha22109

Antwort

1

Wenn Sie eine Beziehung erstellen, auf dem Zielobjekt automatisch ein „Set“ Mitglied, das Ihnen die Beziehung rückwärts zu gehen erlaubt (django documentation sehen).

Vor diesem Hintergrund können Sie in Ihrer Vorlage so etwas wie verwenden:

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

Ich weiß es nicht, aber es wird hilfreich sein, thx, +1 :) – IProblemFactory

1

ich eine Art und Weise kenne nicht den Admin zu konfigurieren, dies für Sie zur Verfügung stellen, aber man kann ziemlich leicht extend the admin templates für Ihr Modell A und stellen Sie die Links zur Admin-Seite von Model B selbst bereit.

Gemäß den Anweisungen würden Sie etwas tun, was dem ähnlich ist, was ich unten beschrieben habe.

erstellen ‚change_form.html‘ template

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

dann die folgenden Konvention, den Inhalt Ihres change_form, können Sie die Standard-Admin-Templates erweitern und an Ihre Bedürfnisse anpassen. Zeigen Sie beispielsweise eine Liste von "b" -Objekten mit einem Link zu ihrer Verwaltungsseite an.

{% 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 %}