gpt4 book ai didi

django - 在管理员中将动态字段添加到 Django 的 export_as_csv 操作

转载 作者:行者123 更新时间:2023-12-05 07:57:18 25 4
gpt4 key购买 nike

我正在尝试自定义出现在管理菜单中的 export_as_csv 操作,以便我可以将动态字段添加到导出的 CSV 文件中。这是通过使用 django-adminactions它提供了 Export as CSV行动。到目前为止,我有以下内容:

from django.contrib import admin
from adminactions.api import csv_options_default, export_as_csv as _export_as_csv
from myapp.models import MyModel

class MyModelAdmin(admin.ModelAdmin):
list_display = ('field1', 'field2', 'field3')

qs = MyModel.objects.all()
options = csv_options_default
fields = ['field4', 'field5']
header = ['Header4', 'Header5']
actions = [_export_as_csv(queryset=qs, fields=fields, header=header, options=options)]

admin.site.register(MyModel, MyModelAdmin)

但是上面的代码在页面上产生如下错误:

hasattr(): attribute name must be string
Request Method: GET
Request URL: http://localhost:8000/admin/mymodel/mymodel/
Django Version: 1.4.14
Exception Type: TypeError
Exception Value:
hasattr(): attribute name must be string
Exception Location: /home/me/.virtualenvs/myproj/local/lib/python2.7/site-packages/django/contrib/admin/options.py in get_action, line 648
Python Executable: /home/me/.virtualenvs/myproj/bin/python
Python Version: 2.7.6

我这样做的方式正确吗?如何将动态字段添加到管理员中 Django 的 export_as_csv 函数?

最佳答案

这是我不久前做的:

https://djangosnippets.org/snippets/2995/

可以这样使用:

class ExampleModelAdmin(admin.ModelAdmin):
raw_id_fields = ('field1',)
list_display = ('field1', 'field2', 'field3',)
actions = [download_as_csv("Export Special Report"),] # custom label for action
download_as_csv_fields = [
'field1', # will use Django field verbose_name as col name
('foreign_key1__foreign_key2__name', 'label2'), # traverse relations with __ syntax
('field3', 'label3'), # custom col name
],
download_as_csv_header = True # output a header row in the csv

关于django - 在管理员中将动态字段添加到 Django 的 export_as_csv 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27358639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com