Применить функцию к списку
У меня есть метод представления, который возвращает набор записей о гонорарах в постраничной таблице
def fee_all(request):
fee_list = Fee.objects.all().order_by('code') # query for records
# How to apply separate function e.g. get_column_result
# to and append result on the fee_list?
p = Paginator(fee_list,10) # paginate query
page = request.GET.get('page')
fees = p.get_page(page) # pagination object instance
context = {
'fee_list': fee_list,
'fees': fees,
}
return render(request, 'fee-all.html', context)
def get_column_result(fee):
#do operations
return column_result
Образец таблицы, которую я хочу достичь
Я хочу применить метод/функцию для каждого элемента кверисета, чтобы выполнить вычисление и отобразить результат в виде дополнительного столбца в отображаемой таблице. Рассматриваю возможность использования фреймов данных из Pandas с помощью функции apply() или лямбда-функции Applying, но преобразование результирующего фрейма данных в кверисет затруднено. Есть идеи?
Возможно, вы ищете annotate?
. Это сильно зависит от того, что делает ваша функция.
подробнее об annotates вы можете прочитать здесь: https://docs.djangoproject.com/en/4.1/ref/models/querysets/#django.db.models.query.QuerySet.annotate
и здесь: https://docs.djangoproject.com/en/4.1/ref/models/expressions/#using-f-with-annotations