J'ai la fonction d'exportation csv suivante pour exporter les informations de modèle dans le fichier csv. Mais j'essaie de comprendre comment afficher les résultats des fonctions du modèle. Ainsi, la fonction d'exportation csv montre tous les champs du modèle (champs de la table), mais pas les sorties de fonctions dans le modèle ..Django export csv
Donc, si je donne les résultats suivants:
def avg_tag(self, obj):
bids = Bid.objects.active(user=obj.user.id)
return bids.aggregate(average_price=Avg('list_price'))['average_price']
dans le modèle
Il n'obtient pas la sortie de cette fonction.
Voici l'action de la fonction d'exportation 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
Comment puis-je changer la fonction ci-dessus afin que les sorties des fonctions du modèle sont émises dans le csv? Merci!
Gah! Battez-moi au coup de poing :) – Brandon
@Brandon - est-ce que je joue un sale post par étapes? ;) –
Haha. Pas du tout. Je viens d'être sur un saccage de débordement de pile de la fin. – Brandon