Джанго:используйте archive_index с полем date_field из связанной модели

StackOverflow https://stackoverflow.com/questions/1453465

Вопрос

Здравствуйте (пожалуйста, извините за мой ужасный английский :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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top