我使用django admin爲我的用戶添加他們的模型對象,因爲您知道django正在保持用戶操作(如添加項目的用戶)的軌道。對於一個對象,在管理面板外的自定義視圖中,我需要顯示加法器的用戶名。獲取對象的歷史記錄
如何獲取/檢索這些數據?
乾杯
我使用django admin爲我的用戶添加他們的模型對象,因爲您知道django正在保持用戶操作(如添加項目的用戶)的軌道。對於一個對象,在管理面板外的自定義視圖中,我需要顯示加法器的用戶名。獲取對象的歷史記錄
如何獲取/檢索這些數據?
乾杯
這只是一個粗略的草圖,但應該是相當接近你需要爲您的看法:
from django.contrib.admin.models import LogEntry, ADDITION
def your_view(request):
...
# This is your object that was modified
my_obj = ...
log_entry = LogEntry.objects.filter(
object_id=my_obj.id,
action_flag=ADDITION,
content_type__id__exact=ContentType.objects.get_for_model(MyModel).id)
...
然後在你的模板:
{{ log_entry.user.username }}
這看起來很有希望,因爲我的項目可以有多個動作,我如何檢索「添加」動作,我一直在檢查「django_admin_log」的數據庫結構,看起來像「動作標誌」保持動作。 – Hellnar 2009-09-09 08:11:59
from django.contrib.admin.models import ADDITION filter(...,action_flag = ADDITION) – 2009-09-09 09:04:41
已編輯的答案包括ADDITION過濾器 – 2009-09-09 09:06:12
如果」除了上面提到的功能之外,我正在使用名爲django-reversion的應用程序,除了使日誌可訪問外,它還提供了c的副本掛起(順便說一句,也可以用來生成一個帶或不帶HTML的DIFF顯示更改)。
我做了一個重要的編輯,確保id匹配該特定模型的id(因爲不同的模型可以包含具有相同id的對象)。 – 2009-09-09 08:12:48