У меня есть алгоритм сортировки, который упорядочивает список с родителями и их детьми. Вот рабочий пример: Обучающая программа Point Coding Ground .
Однако этот рабочий пример имеет предопределенный «очищенный» список. Однако единственное отличие этого предопределенного списка состоит в том, что я удалил «десятичные объявления» (или как они там называются) из списка. Вот пример как грязных, так и чистых списков.
Грязный список:
item_list = [
{...},
{'qmaQuoteAssemblyID': 0, 'qmaLevel': Decimal('1'), 'qmaParentAssemblyID': 0, 'qmaPartShortDescription': '12U x 600 x 650 Professional Rack', 'qmaPartID': 'RACK S9', 'qmaQuantityPerParent': Decimal('1.00000')},
{...}]
Чистый список:
item_list = [
{...},
{'qmaQuoteAssemblyID': 0, 'qmaLevel': 1, 'qmaParentAssemblyID': 0, 'qmaPartShortDescription': '12U x 600 x 650 Professional Rack', 'qmaPartID': 'RACK S9', 'qmaQuantityPerParent': 1.00000},
{...}]
Как вы можете видеть из обоих примеров, что грязный список имеет Decimal('somevalue')
, окружающий его значение DecimalField. Однако с чистым списком он удалил его, что позволило ему без проблем пройти алгоритм.
Когда я запускаю грязный список 1023 * по алгоритму, я получаю эту ошибку:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'Decimal' is not defined
А в моем проекте Django список просто считается пустым.
Это имеет смысл, потому что десятичная дробь не определена. Но мой environemnt, похоже, рассматривает Decimal('somevalue')
как метод / функцию вместо ее сырого десятичного значения.
Я считаю, что этот «мусор» добавляется вокруг значения либо из моей базы данных MSSQL, либо из некоторых других программ MSSQL → Django, которые я запускаю параллельно с моим проектом Django.
В настоящее время я создаю список примерно так:
con1 = Q(qmaQuoteID=quote_id)
con2 = Q(qmaQuoteLineID=quote_line_id)
query = QuoteAssemblies.objects.filter(con1 & con2
).order_by('qmaQuoteAssemblyID'
).values('qmaQuoteAssemblyID', 'qmaParentAssemblyID', 'qmaLevel', 'qmaPartID', 'qmaPartShortDescription', 'qmaQuantityPerParent')
item_list = list(query)
Есть ли способ очистить список, чтобы удалить Decimal('somevalue')
из значения, чтобы оно правильно проходило мой алгоритм?