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)\nRun Code Online (Sandbox Code Playgroud)\n\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\nRun Code Online (Sandbox Code Playgroud)\n\n在我的模板中:
\n\n{% for entry in entries %}\n \xe2\x80\xa6\n{% endfor %}\nRun Code Online (Sandbox Code Playgroud)\n\n我也不想按名称过滤,而是按特定作者过滤,因为名称可能不唯一。
\n你可以使用reverse relationship
context['entries'] = self.object.entry_set.all()
Run Code Online (Sandbox Code Playgroud)
这给了你Entrythat 的所有对象Author。
你为什么使用author__name?您可以直接按对象过滤:
context['entries'] = Entry.objects.filter(authors=self.object)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1198 次 |
| 最近记录: |