Документация по действиям администратора довольно полезна, поэтому зайдите , посмотрите !
Я думаю, что нужно просто написать действие, которое обновляет только не отклоненные блоги.
В следующем коде предполагается, что у вас есть переменные 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"