Django 列表视图不工作

Django ListView not working

我想显示每个用户的笔记列表。让已经登录的用户只能看到his/her条笔记。但是,用于显示已登录用户的所有注释的列表视图不是 working.Is 我需要添加什么吗?请帮忙!

Views.py

class NotesListView(LoginRequiredMixin,ListView):
    model=Notes

models.py

class Notes(models.Model):
    user=models.ForeignKey(User,on_delete=models.CASCADE)
    title=models.CharField(max_length=255)
    subject=models.CharField(max_length=255)
    text=models.TextField()

    def get_absolute_url(self):
        return reverse('notes_detail',kwargs={'pk':self.pk}) 

forms.py

class NotesCreateForm(forms.ModelForm):
    class Meta:
        model=Notes
        fields=('title','subject','text')

notes_list.html

{% extends 'base.html'%}

{% block content %}
<div class="jumbotron container" style="background-color:rgba(0, 0, 0, 0.1);margin-top:2em;">
    <a href="{%url 'notes_create'%}">Add</a>
    <br>
    {%for note in notes_list %}
        <a href="{%url 'notes_detail' pk=note.pk%}">{{user.note.title}}</a><br> 
    {% endfor %}
</div>
{% endblock %}

您需要更改您的 views.py,通常您将它们添加到您的 forms.py 而不是 views.py

我正在对我的查询做类似的事情filter.I希望它对你有帮助。

queryset_list = Notes.objects.filter(user=request.user)

您应该在 NotesListView 上定义自定义查询集

class NotesListView(LoginRequiredMixin,ListView):
    model = Notes
    context_object_name = 'notes_list'
    template_name = 'name of your template'

    def get_queryset(self):
       return super(NotesListView, self).get_queryset().filter(user=self.request.user)