使用for循环在模板中插入多个相关模型值

时间:2017-11-15 16:33:45

标签: python django

我试图在模板中的for循环中发布来自不同模型的多个值。它没有做我正在计划的事情。我想在表格中显示属于潜在客户的LeadActions计数。我确实评论了那部分不起作用的部分。该表应显示潜在客户列表以及该特定潜在客户的过期行为(LeadActions)数量。

我的观点

class LeadListView(LoginRequiredMixin, generic.ListView):
    login_url = '/scrty/login/'
    template_name = "nodiso/leadslist.html"
    model = models.Leads
    def get_context_data(self, **kwargs):
        ctx = super(LeadListView, self).get_context_data(**kwargs)
        ctx['actions']= models.LeadActions.objects.all()
        return ctx
    def get_queryset(self):
        return models.Leads.objects.filter(company=self.request.session['compid'],archive=False)

我的模板

<table class="table">

      <thead>
        <th>Name</th>
        <th>Overdue Tasks</th>
        <th>Total Tasks</th>
      </thead>
      {% for lead in leads_list %}
      {# {% for action in action_list %}#}

      <tr>
        <td><a href="{% url 'nodiso:leaddetail' lead.id %}">{{lead.name}}</a></td>
        <td><span class="badge">{{ actions.name|length }}</span></td>
        <td><span class="badge">42</span></td>
      </tr>

        {# {% endfor %}#}
        {% endfor %}
      </table>

模特

class LeadActions(models.Model):
    lead = models.ForeignKey(Leads)
    name = models.CharField(max_length=265)
    crdate = models.DateField(auto_now_add=True)
    Duedate = models.DateField()
    creator = models.CharField(max_length=265)
    overdue = models.IntegerField(null=True,blank=True)

    def __str__(self):
        return self.name
class Leads(models.Model):
    company = models.ManyToManyField(Company)
    user = models.ManyToManyField(settings.AUTH_USER_MODEL)
    name = models.CharField(max_length=265)
    email = models.EmailField(max_length=265)
    tel = models.IntegerField()
    archive = models.BooleanField(default=False)
    dateenq = models.DateField(auto_now_add=True,null=True)

    def get_absolute_url(self):
        return reverse('nodisoapp:leadlist')
    def __str__(self):
        return self.name

1 个答案:

答案 0 :(得分:1)

您不应该从视图中发送操作列表。相反,在模板中,您可以访问{{ lead.leadactions_set.count }}以提供与循环中每个潜在客户相关的LeadActions计数。