如何过滤通用ListView?

时间:2018-09-26 05:35:22

标签: python django django-models django-templates django-views

我正在使用CBV ListView, 问题是,视图返回系统上所有笔记的列表。 我真正希望的是该列表仅返回与特定CandProfile(模型)

相关联的“注释”

注释模型为:

class CandidateNote(models.Model):

  candidate   = models.ForeignKey(CandProfile, on_delete=models.CASCADE, related_name='candidatenotes_cand')
  note_by     = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL, related_name='candidatenotes_user')
  job_note    = models.TextField(max_length=3000)
  date_added  = models.DateTimeField(auto_now_add=True)

我是Django和查询的新手,并且我真的不知道如何在基于Class的视图中实现这一点。...我的最初想法是: 也许我应该修改get_queryset方法。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在views.py中,

class UserNote(generic.ListView):
     template_name = **add your template name here **
     context_object_name = 'user_notes'

     def get_queryset(self):
          return CandidateNote.objects.filter(user__username=self.kwargs['username'])

您可以在html上显示它, {%用于user_notes%中的注释} **您的模板** {%endfor%}