如何将项目添加到ListView中的上下文数据?

问题描述 投票:0回答:1

我正在ListView中使用自定义混合,并想将特定valueskey?)的list添加到context变量中:

class MyMixin:
    mylist = ['itemA']

class MyList(MyMixin, ListView):
    mylist = ['item1','item2']

    def get_context_date(self, **kwargs):
        context = super(ListView, self).get_context_data(**kwargs)
        context['mylist'].append(self.mylist)
    return context

期望的结果是mylist = ['itemA', 'item1', 'item2']

但是,结果为key_error。将键值附加到context的正确方法是什么?

django django-views
1个回答
0
投票

ListView将返回作为get_queryset()方法的结果检索到的模型实例(或其他对象)的列表。通常是QuerySet来检索某些模型对象,但可以是[[任何可迭代

在您的示例中,没有关于mylist属性最初应如何出现在视图上下文中的代码。

首先,您需要定义get_queryset方法以返回可迭代的必需对象。

或者,您可以在类级别的属性queryset上进行设置,但是它可能不是很动态。

[下一步,您可以定义上下文变量名称,该变量将用于包含此视图正在处理的数据列表-使用context_object_name类属性,或者如果每个请求都需要动态名称,则使用get_context_object_name方法。

在类实例上(也可以通过mylist __ initself) until set inMyList.mylist`访问,或仅在方法级别上将其定义为局部变量)。

method. You can access it as a class attribute

© www.soinside.com 2019 - 2024. All rights reserved.