Django: Verwenden Sie ARCHIVE_INDEX mit DATE_FIELD aus einem verwandten Modell
-
12-09-2019 - |
Frage
Hallo (bitte entschuldigen Sie mich für meine hässliche Englisch: p),
Stellen Sie sich diese zwei einfache Modelle:
from django.contrib.contenttypes import generic
from django.db import models
class SomeModel(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField(_('object id'))
content_object = generic.GenericForeignKey('content_type', 'object_id')
published_at = models.DateTimeField('Publication date')
class SomeOtherModel(models.Model):
related = generic.GenericRelation(SomeModel)
Ich möchte die ARCHIVE_INDEX generic mit SomeOtherModel Ansicht verwenden, aber es funktioniert nicht:
from django.views.generic.date_based import archive_index
archive_index(request, SometherModel.objects.all(), 'related__published_at')
Der Fehler kommt von ARCHIVE_INDEX in Zeile 28 (mit django 1.1):
date_list = queryset.dates(date_field, 'year')[::-1]
Die erhöhte Ausnahme ist:
SomeOtherModel has no field named 'related__published_at'
Haben Sie eine Ahnung, es zu beheben?
Vielen Dank:)
Lösung
Von Graben durch den Django-Quellcode, die allgemeine Ansicht archive_index
erscheint nicht verwandte Bereiche zu unterstützen, die GenericRelation
s sind.
Das ist, weil die queryset Methode dates
nicht generische Beziehungen unterstützt. Betrachten wir die Einreichung dies als Fehler / Feature-Request auf dem Django Bug-Tracker.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow