Django:将archive_index与相关模型中的date_field一起使用

时间:2009-09-21 08:45:44

标签: python django django-models django-views django-generic-views

你好(请原谅我丑陋的英语: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')

错误来自第28行的archive_index(使用django 1.1):

date_list = queryset.dates(date_field, 'year')[::-1]

引发的例外是:

SomeOtherModel has no field named 'related__published_at'

您有什么想法解决它吗?

非常感谢:)

1 个答案:

答案 0 :(得分:1)

从挖掘Django源代码开始,通用视图archive_index似乎不支持GenericRelation s的相关字段。

这是因为queryset方法dates不支持通用关系。考虑将此作为Django错误跟踪器上的错误/功能请求进行归档。