我決定使用Django-Simple-History來構建我的模型的歷史記錄。反過來使用它來構建儀表板。儘管我遇到了一些困難。我試圖在[時間]上輸出[用戶] [添加,更改,刪除] [對象],但是我無法想象出我的生活。自定義儀表板的Django歷史記錄
到目前爲止,我能夠顯示模板上的歷史記錄,但我無法訪問其他任何東西,我是否錯過了一些東西?
我希望有一個具有簡單歷史知識的人可以提供幫助,因爲我無法抓住作者。
這是我迄今爲止的代碼片段。
Models.py
from simple_history.models import HistoricalRecords
class Project(django.db.models.Model):
...
history = HistoricalRecords()
Views.py
@login_required
def addTMProject(request):
user = request.user
if request.method == 'POST':
form = TimeMaterialsForm(request.POST)
if form.is_valid():
project = form.save(commit=False)
project.created_by = request.user
today = datetime.date.today()
project.pre_quote = "%s-" % (str(today.year)[2:4])
project.quote = Project.objects.latest().quote+1
project.save()
project.history.all()
...
而且我也把它傳給我的儀表板/ views.py,所以我可以訪問它。
@login_required
def view_dash(request):
today = datetime.date.today()
user = request.user
proj_perm = user.has_perm('project.add_project')
project = Project.objects.all().order_by('-proj_name')
query = Project.objects.all().order_by('-id')[:5]
que_quotes = Project.objects.filter(status__value__exact = 'Quote')
expired = FollowUp.objects.filter(next_followup__lte=today).order_by('next_followup').filter(archived=False)
log = LogEntry.objects.select_related().all().order_by("-id")
hist = Project.history.all()
return render_to_response('dashboard/home.html', {'user': user, 'project': project, 'query':query, 'que_quotes':que_quotes, 'expired':expired,
'proj_perm':proj_perm, 'log': log, 'hist':hist,}, context_instance=RequestContext(request))
最後從我的模板中摘錄。因爲它是現在,{{H}}顯示了模板「測試簡單的記錄爲2011-04-29十點43分57秒」
home.html的
{% if user.is_authenticated %}
<div id="large_box">
<h5>Activity</h5>
{% for h in hist %}
<ul>
<li>{{ h }}</li>
</ul>
{% endfor %}
如果任何人都可以幫助或指向我更深入的文檔,那就太棒了!
謝謝大家!
謝謝,多數民衆贊成在我正在尋找的線路。謝謝你的詳細迴應,我以前見過這個,但你的解釋比我以前見過的要好。 – TheLifeOfSteve 2011-05-04 17:54:28