初学,求教实现流程。现在实现的流程如下,虽然能达到显示效果,但是感觉实现的方式是不对的。初学基础薄弱。感觉应该用递归方式实现。确无参考求教开发者社区的各位大神。谢谢
class CrmUserFollowUp(models.Model):
followup = models.TextField(verbose_name="跟进明细", null=True, help_text="跟进明细")
followup_data = models.DateTimeField(verbose_name="跟进时间", null=True, help_text="跟进时间")
add_data = models.DateTimeField(auto_now_add=True, verbose_name="录入时间", null=True, help_text="录入时间")
crm_user = models.ForeignKey(verbose_name="用户", to="CrmUser", on_delete=models.CASCADE)
class CrmUserFollowUpModelForm(BootStrapModelForm):
class Meta:
model = models.CrmUserFollowUp
fields = "__all__"
exclude = ["add_data", "crm_user"]
def crmuserfollowup_list(request):
"""跟进明细列表"""
queryset = models.CrmUserFollowUp.objects.all().order_by('-add_data')
crm_user_name_list = []
for q in queryset:
if q.crm_user.name not in crm_user_name_list:
# print(q.crm_user.name)
crm_user_name_list.append(q.crm_user.name)
# print(crm_user_name_list)
# for k in crm_user_name_list:
# print(k)
# for c in queryset:
# if k == c.crm_user.name:
# print(c)
form = CrmUserFollowUpModelForm()
context = {
"form": form,
"crm_user_name_list": crm_user_name_list,
"queryset": queryset,
"title": "跟进明细",
}
return render(request, "crm/followup_list.html", context)
web页面
{% block content %}
<div class="page-body">
<div class="card-body">
<div class="accordion" id="accordion-example">
{% for crm_user_name in crm_user_name_list %}
<div class="card">
<div class="card-body card-active">
<h3 class="card-title">客户:{{ crm_user_name }}</h3>
</div>
</div>
{% for obj in queryset %}
{% if crm_user_name == obj.crm_user.name %}
<div class="card">
<div class="card-body">
<p>跟进时间:{{ obj.add_data|date:"yy-m-d" }}</p>
<p>{{ obj.followup }}</p>
<p class="empty-subtitle text-muted">
客户录入时间:{{ obj.crm_user.add_data|date:"yy-m-d" }}</p>
</div>
</div>
{% endif %}
{% endfor %}
<div class="progress progress-sm card-progress">
<div class="progress-bar" style="width: 38%" role="progressbar" aria-valuenow="38"
aria-valuemin="0" aria-valuemax="100">
</div>
</div>
{% endfor %}
</div>
<div class="card-footer d-flex align-items-center">
<ul class="pagination m-0 ms-auto">
{{ page_string }}
</ul>
</div>
</div>
</div>
{% endblock %}