ListView
возвращает список экземпляров модели (или других объектов) , полученных в результате использования метода get_queryset()
. Обычно это QuerySet
для извлечения некоторых объектов модели, но может быть любой итеративный .
В вашем примере нет кода на то, как атрибут mylist
должен первоначально появляются в контексте представления.
Во-первых, вам нужно определить get_queryset метод для возврата итерируемых требуемых объектов.
Или вы можете установить его в классе атрибут уровня queryset
, однако он может быть не очень динамичным c.
Далее вы можете определить имя переменной контекста, которая будет использоваться для хранения списка данных, которыми это представление манипулирует, - либо с помощью context_object_name
атрибут класса или в случае, если для каждого запроса требуется динамическое c имя - с помощью метода get_context_object_name .
Кроме того, атрибут уровня mylist
класса недоступно __ для экземпляров классов (доступ к ним осуществляется как self) until set in
__ init method. You can access it as a class attribute
MyList.mylist` или просто определяется на уровне метода как локальная переменная.
class MyList(MyMixin, ListView):
context_object_name "mylist"
def get_queryset(self):
# some logic to return required data of this view
# or simply
# return ['itemA']
return SomeModel.objects.all().values_list('name', flat=True)
def get_context_data(self, **kwargs):
context = super(ListView, self).get_context_data(**kwargs)
mylist = ['item1','item2']
context['mylist'].append(mylist)
return context