Wie definieren get_queryset, get_context_data in eine django-view?
Möchte ich zeigen einen Baum mit Authors
und Books
geschrieben, für jeden Autor in sub-Element,
wie anzeigen in der Bild und... ich habe zwei Modelle Author
und Book
in einer OneToMany-Beziehung.
#models.py
from django.db import models
class Author(models.Model):
Name = models.CharField(max_length = 250)
def __unicode__(self):
return self.Name
class Book(models.Model):
Title = models.CharField(max_length = 250)
def __unicode__(self):
return self.Title
#views.py
from django.shortcuts import render, get_object_or_404
from django.views.generic import TemplateView, ListView
from .models import InstanciaJudicial, SedeJudicial
class Prueba(ListView):
model = SedeJudicial
template_name = 'instancias/pruebas.html'
Ich weiß, dass ich den vorgegebenen get_queryset
und get_context_data
, aber ich weiß nicht, wie ich das Tat.
- wo ist die Beziehung zwischen den Modellen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst benötigen Sie zum herstellen einer
ForeignKey
Beziehung zwischen Ihrer Modelle.Nun in Ihrer Ansicht, die Sie sollten in der Lage sein zu Holen Sie Ihre Liste der Autorinnen und Autoren durch überschreiben der
get_queryset
Methode wie diese:Nur mit der oben-Ansicht, die Sie sollten in der Lage sein, in Ihre Vorlage ein:
Nun sagen, das Sie anpassen möchten, so dass anstelle der generischen
object_list
die Kontext-variable wurde statt etwas vernünftiges in der Domäne wieauthors
.Nur ergänzen Sie Ihre Ansicht wie diese:
Hinweis: Sie brauchen nicht
get_context_data
überhaupt noch.Angenommen, Sie möchten einige zusätzliche Daten, Sie werden nur außer Kraft setzen möchten
get_context_data
- und in diesem Fall werden Sie wollen, halten Sie die Objekt-Liste, die bereits in Ihrem Kontext durch aufrufen der Oberklassenget_context_data
Methode zuerst.Nur:
get_context_data
Argumente sind, hängt von der Strecken.*args
und**kwargs
sollte wahrscheinlich ersetzt werden durch etwas, das speziell auf Ihre anzeigen und die route, die in Ihrem code.