He decidido usar Django-Simple-History para compilar el historial de mis modelos. A su vez, usar eso para construir el tablero. Me he topado con un pequeño inconveniente. Estoy tratando de enviar [Usuario] [agregado, cambiado, eliminado] [objeto] en/a [tiempo] pero no puedo entenderlo por mi vida.Django History for Custom Dashboard
Hasta ahora puedo mostrar el registro histórico en la plantilla pero no puedo acceder a nada más, ¿me falta algo?
Esperaba que alguien con conocimiento de Historia Simple pueda ayudar, ya que no pude contactar al autor.
Aquí están los fragmentos de código que tengo hasta ahora.
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()
...
y también he pasado en mi tablero/views.py así que tienen acceso a ella.
@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))
Y finalmente un fragmento de mi plantilla. Ya que es en este momento, el {{h}} muestra la "Prueba de registros simple como de 2011-04-29 10:43:57" en la plantilla
home.html
{% if user.is_authenticated %}
<div id="large_box">
<h5>Activity</h5>
{% for h in hist %}
<ul>
<li>{{ h }}</li>
</ul>
{% endfor %}
si alguien puede ayuda o apúntame a una documentación más profunda, ¡entonces sería genial!
¡Gracias a todos!
Gracias, eso es más en la línea de lo que estoy buscando. Gracias por la respuesta detallada también, he visto esto antes, pero tu explicación es mejor que la que he visto anteriormente. – TheLifeOfSteve