【发布时间】:2015-07-10 13:01:32
【问题描述】:
我正在为我的 cmets 应用程序使用 django-mptt 包,为此我有以下模型:
class Comment(MPTTModel):
content = models.TextField(verbose_name='Treść')
author = models.ForeignKey(AUTH_USER_MODEL, verbose_name='Autor', blank=False, null=True)
is_deleted = models.BooleanField(verbose_name='Komentarz usunięty', default=False,
help_text='Zaznacz, aby usunąć komentarz')
ip = models.GenericIPAddressField(default=0, verbose_name='Adres IP')
content_type = models.ForeignKey(ContentType, verbose_name='Typ obiektu')
object_id = models.PositiveIntegerField(verbose_name='ID obiektu')
content_object = GenericForeignKey('content_type', 'object_id')
parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)
hotness = models.FloatField(default=0)
created_at = models.DateTimeField(auto_now_add=False, verbose_name='Data dodania')
updated_at = models.DateTimeField(auto_now=True, verbose_name='Aktualizacja')
class MPTTMeta:
order_insertion_by = ('-hotness', '-created_at')
class Meta:
verbose_name = 'Komentarz'
verbose_name_plural = 'Komentarze'
def __unicode__(self):
if len(self.content) > 50:
return self.content[:50] + '...'
else:
return self.content
我想让用户可以按热度或创建日期对评论树进行排序。是否可以从视图中编辑 order_insertion_by 字段以生成 2 种类型的排序(按日期、按热度)?感谢您的帮助。
【问题讨论】:
-
您找到解决方案了吗?
-
我用下面的代码示例 (python3) 做了一些测试,它似乎可以工作 - 但如果其他人愿意尝试它会很好。
标签: python django django-mptt