Django List Admin разрешить сортировку по обратному внешнему ключу - PullRequest
0 голосов
/ 28 апреля 2010

При создании собственного класса администратора для django.contrib.comments я хочу разрешить сортировку помеченных комментариев. Я могу использовать специальный метод для класса admin, который возвращает comment.flags.count(), но не уверен, что получит админскую сортировку по этому.

Проблема, которую я вижу, заключается в том, что ее модель CommentFlag содержит внешний ключ для модели Comment.

Кто-нибудь знает решение без изменения django.contrib.comments?

1 Ответ

0 голосов
/ 29 апреля 2010
def queryset(self, request):
        qs = super(CommentsAdmin, self).queryset(request)
        return qs.extra(select={
            'flag_count': 'SELECT COUNT(*) FROM django_comment_flags WHERE django_comment_flags.comment_id = django_comments.id'
            },)

def flags(self):
    return self.flags.count()
flags.admin_order_field = 'flag_count'

Это немного грязно, но Джанго жалуется, что flag_count не является средством доступа к комментарию модели, когда вы регистрируете администратора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...