Не могу узнать, почему я продолжаю получать следующую ошибку:
Ошибка типа в / boats / reversion / count () принимает 1 позиционный аргумент, но 2 были даны
#views
…
…
…
memory_limiter = BoatImage.objects.filter(boat_id__isnull=True).exclude(
memory__in=existing_boats_pk).values_list("memory", flat=True)
for i in memory_limiter:
if memory_limiter.count(i) > 3:
memory_limiter.remove(i)
что говорит оболочка об ограничителе памяти:
>>> for memory in memory_limiter:
... print(memory, type(memory))
...
93 <class 'int'>
93 <class 'int'>
93 <class 'int'>
93 <class 'int'>
93 <class 'int'>
93 <class 'int'>
93 <class 'int'>
100 <class 'int'>
102 <class 'int'>
102 <class 'int'>
102 <class 'int'>
>>> memory_limiter
<QuerySet [93, 93, 93, 93, 93, 93, 93, 100, 102, 102, 102]>
>>>
следующий метод дает те же результаты:
for i in [ x for x in memory_limiter]:
if memory_limiter.count(i) > 3:
memory_limiter.remove(i)
Вопрос в том, что не так с количеством?Я скопировал и вставил этот список в отдельный модуль *.py
, и там он работает нормально… Попытался превратить qs в одинаковые результаты итератора.
в отдельном модуле
a = [93, 93, 93, 93, 93, 93, 93, 100, 102, 102, 102]
for i in a:
if a.count(i) > 3:
a.remove(i)
print(a)
----- >[93, 93, 93, 100, 102, 102, 102]