У меня есть следующая функция экспорта csv для экспорта информации о модели в файл csv. Но я пытаюсь понять, как показать результаты от функций в модели. Таким образом, функция CSV экспорт показывает все поля в модели (поля в таблице), но не выходы из функций в модели ..Django csv export
Так что, если у меня есть следующий:
def avg_tag(self, obj):
bids = Bid.objects.active(user=obj.user.id)
return bids.aggregate(average_price=Avg('list_price'))['average_price']
в модели
Он не получает выход от этой функции.
Вот CSV функция экспорта действия:
def export_select_fields_csv_action(description="Export selected objects",
fields=None, exclude=None, header=True):
def export_as_csv(modeladmin, request, queryset):
"""
Generic csv export admin action.
based on http://djangosnippets.org/snippets/1697/
"""
opts = modeladmin.model._meta
field_names = [field.name for field in opts.fields]
labels = []
if exclude:
field_names = [v for v in field_names if v not in exclude]
elif fields:
field_names = [k for k, v in fields if k in field_names]
labels = [v for k, v in fields if k in field_names]
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = ('attachment; filename=%s.csv'
% unicode(opts).replace('.', '_'))
writer = csv.writer(response)
if header:
if labels:
writer.writerow(labels)
else:
writer.writerow(field_names)
for obj in queryset:
writer.writerow([unicode(getattr(obj, field)).encode('utf-8')
for field in field_names])
return response
export_as_csv.short_description = description
return export_as_csv
Как я могу изменить функцию выше, так что выходы из функций в модели, выводятся в формате CSV? Благодаря!
Gah! Ударь меня на удар :) – Brandon
@Brandon - Я играю грязную публикацию поэтапно? ;) –
Ха-ха. Не за что. В последнее время я только что был в Stack Overflow rampage. – Brandon