আমি জানি এই প্রশ্নটি পুরানো, তবে আজ (জ্যাঙ্গো ১.৯) হিসাবে, জ্যাঙ্গোর ইতিহাসের আইটেমগুলি এই প্রশ্নের তারিখের চেয়ে বেশি শক্তিশালী। একটি বর্তমান প্রকল্পে, আমার সাম্প্রতিক ইতিহাসের আইটেমগুলি নেওয়া এবং এটিকে নাবার থেকে ছাড়ার দরকার ছিল। এইভাবে আমি এটি করেছি এবং খুব সোজা এগিয়ে ছিল:
*views.py*
from django.contrib.admin.models import LogEntry, ADDITION, CHANGE, DELETION
def main(request, template):
logs = LogEntry.objects.exclude(change_message="No fields changed.").order_by('-action_time')[:20]
logCount = LogEntry.objects.exclude(change_message="No fields changed.").order_by('-action_time')[:20].count()
return render(request, template, {"logs":logs, "logCount":logCount})
উপরের কোড স্নিপেটে যেমন দেখা গেছে, আমি লগইন্ট্রি মডেল (django.contrib.admin.models.py যেখানে এটি জাঙ্গো ১.৯ এ অবস্থিত) থেকে একটি বেসিক ক্যোয়ারসেট তৈরি করছি এবং যেখানে কোনও পরিবর্তন জড়িত না এমন আইটেমগুলি বাদ দিয়ে, এর দ্বারা আদেশ দিয়েছি ক্রিয়া সময় এবং কেবল গত 20 লগ দেখায় log আমি শুধু গণনা সহ অন্য আইটেম পাচ্ছি। আপনি যদি লগএন্ট্রি মডেলটি দেখে থাকেন তবে জঞ্জো আপনার প্রয়োজনীয় ডেটার টুকরো টুকরো টুকরো টানতে ব্যবহার করতে যে ক্ষেত্রের নামগুলি ব্যবহার করেছেন তা দেখতে পাবেন। আমার নির্দিষ্ট ক্ষেত্রে, আমি আমার টেম্পলেটটিতে এটি ব্যবহার করেছি:
চূড়ান্ত পণ্যের চিত্রের লিঙ্ক
*template.html*
<ul class="dropdown-menu">
<li class="external">
<h3><span class="bold">{{ logCount }}</span> Notification(s) </h3>
<a href="{% url 'index' %}"> View All </a>
</li>
{% if logs %}
<ul class="dropdown-menu-list scroller actionlist" data-handle-color="#637283" style="height: 250px;">
{% for log in logs %}
<li>
<a href="javascript:;">
<span class="time">{{ log.action_time|date:"m/d/Y - g:ia" }} </span>
<span class="details">
{% if log.action_flag == 1 %}
<span class="label label-sm label-icon label-success">
<i class="fa fa-plus"></i>
</span>
{% elif log.action_flag == 2 %}
<span class="label label-sm label-icon label-info">
<i class="fa fa-edit"></i>
</span>
{% elif log.action_flag == 3 %}
<span class="label label-sm label-icon label-danger">
<i class="fa fa-minus"></i>
</span>
{% endif %}
{{ log.content_type|capfirst }}: {{ log }}
</span>
</a>
</li>
{% endfor %}
</ul>
{% else %}
<p>{% trans "This object doesn't have a change history. It probably wasn't added via this admin site." %}</p>
{% endif %}
</li>
</ul>