2017-11-15 5 views
0

テンプレート内のforループ内の異なるモデルから複数の値を投稿しようとしています。私が計画していることをやっていない。 Leadsに属するLeadActionsの数を表に表示したい。私は、うまく動作していない部分をコメントしました。表には、リードのリストと、その特定のリードの延期アクション数(LeadActions)の数が表示されます。forループを使用して複数の関連するモデル値をテンプレートに挿入する

マイビュー

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

あなたは番目を送信するべきではありませんビューからのアクションのリスト。代わりに、テンプレート内で{{ lead.leadactions_set.count }}にアクセスして、ループ内の各リードに関連するLeadActionの数を表示できます。

+0

ありがとうございます。期限切れのような他の値をご希望の場合は、 – Hennie

関連する問題