emp*_*cle 4 python django django-templates django-models django-views
给出 Django 进行查询的示例:
\n\nclass Author(models.Model):\n    name = models.CharField(max_length=50)\n    ...\n    def __str__(self):\n        return self.name\n\nclass Entry(models.Model):\n    ...\n    authors = models.ManyToManyField(Author)\n我想要一个作者 DetailView,其中包含该作者的条目列表。到目前为止我所拥有的:
\n\nclass AuthorDetailView(DetailView):\n    model = Author\n\n    def get_context_data(self, **kwargs):\n        context = super(AuthorDetailView, self).get_context_data(**kwargs)\n        context['entries'] = Entry.objects.filter(\n            authors__name=self.object.name)\n        return context\n在我的模板中:
\n\n{% for entry in entries %}\n    \xe2\x80\xa6\n{% endfor %}\n我也不想按名称过滤,而是按特定作者过滤,因为名称可能不唯一。
\n你可以使用reverse relationship
context['entries'] = self.object.entry_set.all()
这给了你Entrythat 的所有对象Author。
你为什么使用author__name?您可以直接按对象过滤:
context['entries'] = Entry.objects.filter(authors=self.object)
| 归档时间: | 
 | 
| 查看次数: | 1198 次 | 
| 最近记录: |