0

奇妙なエラーが表示されます: 'ListView' は 'queryset' または 'model' を定義する必要があります

ここに私のリストビューがあります:

class ProjectListView(ListView):
    template_name = "ProjectList.html"
    model = Project
    context_object_name = "projects"

CreateView でも同じ問題があります。解決策を見つけるために他に必要な情報はありますか?

このエラーを修正する方法。

4

1 に答える 1

0

get_queryset()各汎用ListViewビューで関数を定義する必要があります。これが、表示したいオブジェクトを django に伝える方法です。

Modelあなたのプロジェクトではありません。モデル クラスに設定する必要があります。ファイルで呼び出されたモデルがあるとPollしますmodels.py。また、一般的な ListView を使用して、データベース内のすべての投票を表示したいと考えています。次に、これを書くことができます:

model = Poll

これは、次のクエリと同じです。

Poll.objects.all()

これをオーバーライドして、たとえば先週の発行日でオブジェクトを表示する場合は、get_queryset()必要なクエリ パラメータを使用して定義します。

ProjectListView(generic.ListView):
    # ...
    def get_queryset(self):
       return obj.objects.filter(pub_date__gte=timezone.now() - datetime.timedelta(days=7))

等々。

于 2013-11-11T17:33:59.413 に答える