我想就此事请求协助
我正在使用django-import-export将我的数据导出到Excel,我想更改导出文件名。
我试图搜索,但没有找到相关的解决方案。
那么,是否可以更改文件名?如果是的话,在哪里?或者至少在某种程度上说这个文件来自一个可读来源(我正在命名我的模型:rep,appdata等等,所以如果我导出信息,用户就无法理解它(是它坏?))
尝试verbose_name = u'your-fancy-class-name'
,但我导出的文件名仍由模型类本身命名(appdata,rep等)
提前致谢。
答案 0 :(得分:1)
我使用Django Admin执行了以下操作:
from import_export.admin import ImportExportActionModelAdmin
class MyModelAdmin(ImportExportActionModelAdmin):
# ...
#Your configs and code
def get_export_filename(self, file_format):
filename = "%s.%s" % ("your_custom_filename",
file_format.get_extension())
return filename
原始代码位于Import-Export源代码中,特别是在ExportMixin类的/import_export/admin.py中。由于ImportExportActionModelAdmin继承了此类,因此我们基本上覆盖了该方法。
答案 1 :(得分:0)
在您的admin.py中:
public class PaginatedList<T>
{
public int PageIndex { get; set; }
public int TotalPages { get; set; }
public List<T> Items { get; set; }
public PaginatedList(List<T> items, int count, int pageIndex, int pageSize)
{
PageIndex = pageIndex;
TotalPages = (int)Math.Ceiling(count / (double)pageSize);
Items = items;
}
public bool HasPreviousPage
{
get
{
return (PageIndex > 1);
}
}
public bool HasNextPage
{
get
{
return (PageIndex < TotalPages);
}
}
public static async Task<PaginatedList<T>> CreateAsync(
IQueryable<T> source, int pageIndex, int pageSize)
{
var count = await source.CountAsync();
var items = await source.Skip(
(pageIndex - 1) * pageSize)
.Take(pageSize).ToListAsync();
return new PaginatedList<T>(items, count, pageIndex, pageSize);
}
}