簡體   English   中英

Django在模板中過濾不同的父母

[英]Django filtering different parents in template

我在項目中考慮了評估模型,就像

class Evaluation(models.Model):
    question        = models.ForeignKey(Question)
    value           = models.IntegerField('Value')
    creator         = models.ForeignKey(User)

    def __unicode__(self):
        return unicode(self.value)

在我的模板中,我想在這樣的表中顯示不同的評估

| question1 | creator1  : evaluation of creator1
            | creator2  : evaluation of creator2
-------------------------------------------------
| question2 | creator1  : evaluation of creator1
            | creator2  : evaluation of creator2
...

為此,我必須區分查詢集中與問題相關的創建者。

不幸的是,我無法創建符合我想要的過濾器或分組。 如何根據引用的問題輕松選擇創建者及其評估?

您希望將{% regroup %}模板{% regroup %}https://docs.djangoproject.com/en/1.6/ref/templates/builtins/#regroup )應用於按question排序的Evaluation question ,最好使用select_related() (以避免N + 1查詢問題)

# views.py

def myview(request):
   context = {
      "evaluations":Evaluation.objects.order_by("question", "creator").select_related()
      }
    return render(request, "mytemplate.html", context)

和您的模板:

# mytemplate.html

    {% regroup evaluations by question as questions_list %}
    <ul>
    {% for question in questions_list %}
      <li>{{ question.grouper }}
        <ul>
          {% for evaluation in question.list %}
          <li>{{ evaluation.creator }}: {{ evaluation }}
          {% endfor %}
        </ul>
      </li>  
     {% endfor %}
    </ul>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM