Эй, это быстро. У меня есть две модели, Post и Term, и я хотел бы иметь возможность отмечать и классифицировать (таксономические) сообщения, а также другие (будущие) модели. Модель My Post имеет следующие поля: заголовок, контент, опубликовано (дата), а мой термин объявлен так:
class Term(models.Model):
taxonomy = models.CharField(max_length=255)
name = models.CharField(max_length=255)
slug = models.SlugField(max_length=50)
Тогда у меня есть модель TermRelation, которая привязывает условия к сообщениям и другим моделям, например:
class TermRelation(models.Model):
term = models.ForeignKey(Term)
object_id = models.PositiveIntegerField()
content_type = models.ForeignKey(ContentType)
content_object = generic.GenericForeignKey()
Все работает как положено, но мой вопрос заключается в следующем. Я хотел бы создать архив сообщений в определенной категории и упорядочить сообщения по дате их публикации. Вот что я пытаюсь сделать:
ctype = ContentType.objects.get_for_model(Post)
relations = TermRelation.objects.filter(content_type__pk=ctype.id)
И он работает нормально, хотя, я думаю, он отсортирован по соотношению PK. Когда я пытаюсь сделать следующее:
relations = TermRelation.objects.filter(content_type__pk=ctype.id).order_by('content_object__published')
Я получаю сообщение о том, что в TermRelation отсутствует поле content_object. Я знаю, что должен быть способ решить это. Есть идеи?
Спасибо ~ K