使用ListView上的多个数据过滤“ get_context_data”

时间:2019-02-22 09:00:55

标签: python django django-views django-class-based-views

在我的 ListView 中,我希望通过从context_data登录的当前用户过滤数据:

views.py

import {ChangeDetectorRef, Component, OnInit, QueryList, ViewChildren} from '@angular/core';

import {MatDialog, MatExpansionPanel} from '@angular/material';

@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})

export class AppComponent {
questions = ['first', 'second'];

constructor(private cd: ChangeDetectorRef) {
    }

@ViewChildren(MatExpansionPanel) matExpansionPanelQueryList: QueryList<MatExpansionPanel>;


extendQuestion() {
        this.matExpansionPanelQueryList.changes.subscribe(
        change => {
            change.last.open();
            this.cd.detectChanges();
        }
        );
        this.questions.push('some-new-item');
    }
}

我尝试使用 query_set 覆盖,但对于链接模型它仅有效

2 个答案:

答案 0 :(得分:1)

好吧,您需要过滤所有这些查询。

context['dashboard_list']= Dashboard.objects.filter(user=self.request.user)[:15]
context['todo_list']= Todo.objects.filter(user=self.request.user).order_by('-pk')[:15]

等-假设您的模型都有一个指向用户模型的user FK字段。

答案 1 :(得分:0)

请参阅下面的答案,它仍然有效,但是请不要忘记添加:

def get_queryset(self):
    return self.model.objects.filter(user=self.request.user)

对于您的ListView,否则第一个模型仍将显示。