ModelAdmin
カスタムアクションの場合に実行できる利用可能なものがあれば、受け入れられた回答よりもはるかに簡単にこれを実行できるようになりました。
このModelAdmin
クラスは十分に文書化されていませんが、実際には次のメソッドをショートカットとして提供しています。
def log_addition(self, request, object, message):
"""
Log that an object has been successfully added.
The default implementation creates an admin LogEntry object.
"""
def log_change(self, request, object, message):
"""
Log that an object has been successfully changed.
The default implementation creates an admin LogEntry object.
"""
def log_deletion(self, request, object, object_repr):
"""
Log that an object will be deleted. Note that this method must be
called before the deletion.
The default implementation creates an admin LogEntry object.
"""
これらは使いやすいです。質問の例を続けるには:
def make_checked(modeladmin, request, queryset):
queryset.update(checked = 1)
for obj in queryset:
modeladmin.log_change(request, obj, 'Marked checked: ' + str(obj))
make_checked.short_description = 'Mark selected products as checked'