我有以下型号:
class Person(models.Model):
name = models.CharField(max_length=45)
etc...
class Clothes(models.Model):
person = models.ForeignKey(Person)
etc...
我在 admin.py 中有以下内容
class ExportCsvMixin:
def export_as_csv(self, request, queryset):
meta = self.model._meta
field_names = [field.name for field in meta.fields]
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename={}.csv'.format(meta)
writer = csv.writer(response)
writer.writerow(field_names)
for obj in queryset:
row = writer.writerow([getattr(obj, field) for field in field_names])
return response
export_as_csv.short_description = "Export Selected as CSV"
class PersonAdmin(admin.ModelAdmin, ExportCsvMixin):
actions = ["export_as_csv"]
etc...
这很好用,我可以导出一个包含 Person 中所有字段的 csv 文件。我将如何将 Clothes 模型的最新记录作为 csv 导出的字段包含在内?