Как уведомить пользователя, когда пользовательское действие django не работает должным образом? - PullRequest
0 голосов
/ 15 февраля 2010

Я пишу пользовательское действие для администратора django. Это действие должно работать только для записей, имеющих определенное состояние.

Например, пользовательское действие «Одобрить блог» должно утверждать блог пользователя только в том случае, если блог не одобрен. И это не должно утверждать отклоненные блоги .

Один из вариантов - отфильтровать неподтвержденные блоги и затем одобрить их. Но есть все еще шансы, что отклоненные блоги могут быть одобрены.

Если пользователь пытается утвердить отклоненный блог, пользовательское действие должно уведомить пользователя о недопустимой операции в администраторе django.

Есть решение?

1 Ответ

0 голосов
/ 15 февраля 2010

Документация по действиям администратора довольно полезна, поэтому зайдите , посмотрите !

Я думаю, что нужно просто написать действие, которое обновляет только не отклоненные блоги.

В следующем коде предполагается, что у вас есть переменные rejected и approved, которые отображаются на целочисленные значения, представляющие отклоненные блоги и блоги, которые были утверждены соответственно:

class BlogAdmin(admin.ModelAdmin):

    ...
    actions = ['approve']
    ...

    def approve(self, request, queryset):
        rejects = queryset.filter(state = rejected)
        if len(rejects) != 0:
            # You might want to raise an exception here, or notify yourself somehow
            self.message_user(request,
                              "%s of the blogs you selected were already rejected." % len(rejects))
            return

        rows_updated = queryset.update(state = approved)
        self.message_user(request, "%s blogs approved." % rows_updated)
    approve.short_description = "Mark selected blogs as approved"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...