django admin 下载excel文件
时间: 2023-12-31 15:07:10 浏览: 147
要在Django admin中下载Excel文件,你可以使用Django的内置模块“csv”来生成CSV文件,然后将其转换为Excel文件。
以下是一个简单的示例代码:
```python
import csv
from django.http import HttpResponse
def download_excel_file(modeladmin, request, queryset):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="my_data.csv"'
writer = csv.writer(response)
writer.writerow(['ID', 'Name', 'Email'])
for obj in queryset:
writer.writerow([obj.id, obj.name, obj.email])
return response
download_excel_file.short_description = "Download Excel file"
```
在上面的示例中,`download_excel_file`函数将使用Django的内置csv模块生成CSV文件。然后,将HTTP响应的内容类型设置为`text/csv`,并将文件名设置为“my_data.csv”。最后,将查询集中的数据写入CSV文件。
你可以将上面的代码复制到你的admin.py文件中,并将其与你的模型注册。
```python
from django.contrib import admin
from .models import MyModel
class MyModelAdmin(admin.ModelAdmin):
actions = [download_excel_file]
admin.site.register(MyModel, MyModelAdmin)
```
现在,你可以在Django admin界面上选择多个对象,然后使用“Download Excel file”操作来下载包含这些对象数据的Excel文件。
阅读全文