У меня есть django класс Equity
, соответствующие части которого я скопировал ниже. В большинстве моих обзоров моделей меня устраивает порядок мета equity_name
. Однако у меня также есть свойство weighted_strength
, которое я хотел бы создать в виде списка, который просматривает список equitys
, отсортированный по weighted_strength
.
Обычно, если weighted_strength
была обычной моделью поле, я мог бы использовать order_by()
в моем представлении для сортировки по этому полю. Однако, поскольку это свойство, похоже, я не могу использовать order_by()
.
Если есть способ использовать order_by()
или изменить метаупорядочение, чтобы я мог только один раз отсортировать его по weighted_strength
Буду весьма признателен за это.
Некоторое время я искал в Интернете и нашел некоторую расплывчатую информацию, относящуюся к свойствам Django - Python, но ничего слишком полезного. Спасибо!
class Equity(models.Model):
equity_name = models.CharField(max_length=255)
class Meta:
ordering = ['equity_name']
@property
def weighted_strength(self):
weight = 0.50
dataset1 = self.data_set1()
dataset2 = self.data_set2()
num_data = len(dataset1)
if (num_data != 0):
total = 0
for i in range(num_data):
total +=(weight**i)*(dataset1[i][0]-dataset2[i][0])
total = total*(1-weight)/(1-weight**num_data)
self._weighted_strength = total
return self._weighted_strength
else:
self._weighted_strength = 0
return self._weighted_strength