我决定使用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