Django queryset ошибка при использовании len(qs) TypeError: аргумент должен быть int или float

Я не знаю, что случилось с моей базой данных, но теперь я не могу расширить свой набор запросов.

Я могу создать qs с большим количеством obj с помощью qs.SignalSma.objects.all(). Но почему-то я не могу использовать len(qs) на этом qs или сделать цикл с этим qs

Я получаю эту ошибку, если пытаюсь сделать это.

    In [9]: len(qs)
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    Cell In[9], line 1
    ----> 1 len(qs)
    
    File ~\OneDrive\Desktop\dev-2023\signal\lib\site-packages\django\db\models\query.py:262, in QuerySet.__len__(self)
        261 def __len__(self):
    --> 262     self._fetch_all()
        263     return len(self._result_cache)
    
    File ~\OneDrive\Desktop\dev-2023\signal\lib\site-packages\django\db\models\query.py:1324, in QuerySet._fetch_all(self)
       1322 def _fetch_all(self):
       1323     if self._result_cache is None:
    -> 1324         self._result_cache = list(self._iterable_class(self))
       1325     if self._prefetch_related_lookups and not self._prefetch_done:
       1326         self._prefetch_related_objects()
    
    File ~\OneDrive\Desktop\dev-2023\signal\lib\site-packages\django\db\models\query.py:68, in ModelIterable.__iter__(self)
         59 related_populators = get_related_populators(klass_info, select, db)
         60 known_related_objects = [
         61     (field, related_objs, operator.attrgetter(*[
         62         field.attname
       (...)
         66     ])) for field, related_objs in queryset._known_related_objects.items()
         67 ]
    ---> 68 for row in compiler.results_iter(results):
         69     obj = model_cls.from_db(db, init_list, row[model_fields_start:model_fields_end])
         70     for rel_populator in related_populators:
    
    File ~\OneDrive\Desktop\dev-2023\signal\lib\site-packages\django\db\models\sql\compiler.py:1122, in SQLCompiler.apply_converters(self, rows, converters)
       1120     value = row[pos]
       1121     for converter in convs:
    -> 1122         value = converter(value, expression, connection)
       1123     row[pos] = value
       1124 yield row
    
    File ~\OneDrive\Desktop\dev-2023\signal\lib\site-packages\django\db\backends\sqlite3\operations.py:313, in DatabaseOperations.get_decimalfield_converter.<locals>.converter(value, expression, connection)
        311 def converter(value, expression, connection):
        312     if value is not None:
    --> 313         return create_decimal(value).quantize(quantize_value, context=expression.output_field.context) 
    
    TypeError: argument must be int or float

Есть идеи, что происходит??? и как я могу это исправить?

Объекты

QuerySet имеют свой собственный метод подсчета. Используйте его:

qs = SignalSma.objects.all()
qs.count()  # returns number of objects inside the queryset
Вернуться на верх