Джанго:используйте archive_index с полем date_field из связанной модели
-
12-09-2019 - |
Вопрос
Здравствуйте (пожалуйста, извините за мой ужасный английский :p),
Представьте себе эти две простые модели:
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)
Я хотел бы использовать общее представление archive_index с SomeOtherModel, но оно не работает:
from django.views.generic.date_based import archive_index
archive_index(request, SometherModel.objects.all(), 'related__published_at')
Ошибка возникает из archive_index в строке 28 (с использованием django 1.1):
date_list = queryset.dates(date_field, 'year')[::-1]
Выдвинутое исключение:
SomeOtherModel has no field named 'related__published_at'
Есть ли у вас идеи это исправить?
Большое спасибо :)
Решение
Изучив исходный код Django, общий вид archive_index
похоже, не поддерживает связанные поля, которые GenericRelation
с.
Это связано с тем, что метод набора запросов dates
не поддерживает родовые отношения.Рассмотрите возможность подачи этого сообщения об ошибке/функции в систему отслеживания ошибок Django.
Не связан с StackOverflow