【问题标题】:Export only list_display columns with verbose_names?仅导出带有详细名称的 list_display 列?
【发布时间】:2021-12-29 04:44:01
【问题描述】:

您好,我是 django 的新手,所以我有一个基本问题。 在我的管理类中,我添加了 ExportMixin,我想用我的 list_display 列和详细名称保存 excel 文件。

不是 id 列,或者假设我有状态,它说继续或不做,但我在状态下显示 0-1。

我还在寻找答案,请帮帮我:)

我的代码:

@admin.register(Ico)
class IcoAdmin(ExportMixin, BaseAdmin):
    list_display = (
        'account', 'pair', 'amount', 'ico_situation', 'expire_date', 'price',
        'token_amount', 'reference_user', 'get_reference_user_income')
    list_filter = ('account', 'account__is_bot')
    search_fields = ('account_id', 'wallet_id', 'ico_situation')

    raw_id_fields = ('account', 'pair', 'wallet', 'reference_user')

我的 Excel 表格:

id account wallet pair amount token_amount final_token_amount expire_date status ico_situation price reference_code reference_user
152 111 789 12 100 400 0 2022-03-17 1 1 0,25    
151 111 789 12 100 200 0 2021-11-17 1 0 0,5    
150 111 789 12 100 200 0 2021-11-17 1 0 0,5   2
149 111 789 12 100 200 0 2021-11-17 1 0 0,5    
148 111 789 12 100 200 0 2021-11-17 1 0 0,5   2
147 111 789 12 100 200 0 2021-11-17 1 0 0,5    
146 111 789 12 100 200 0 2021-11-17 1 0 0,5   2

我想要的表: (https://ibb.co/8YpQ0S1)

感谢您的帮助:)

【问题讨论】:

  • 您需要为您的导出声明一个resource。您可以运行example app 来查看该怎么做。
  • @MatthewHegarty 谢谢我克隆了示例应用程序,但我看到你的 excel 文件包含你所有的模型文件。我想要我的 excel 文件只是我的管理页面 list_display 字段?有可能制作吗?你能帮我吗

标签: python django django-admin django-import-export


【解决方案1】:

通过在 Admin 类上声明 Resource,您可以控制哪些字段出现在导出中。在fields Meta 属性中列出要导出的字段。

class IcoResource(ModelResource):

    class Meta:
        model = Ico
        fields = (
            'account', 'pair', 'amount', 'ico_situation', 'expire_date', 'price',
            'token_amount', 'reference_user', 'get_reference_user_income'
        )
        
        
@admin.register(Ico)
class IcoAdmin(ExportMixin, BaseAdmin):
    resource_class = IcoResource

    # ... your other fields here

您可以使用widgets控制字段的导出方式

希望我正确理解了您的问题。

【讨论】:

    【解决方案2】:

    伙计们,我找到了我的解决方案。

    这里的代码: --示例应用的管理页面

     class BookResource(ModelResource):
        published = Field(attribute='published', column_name='Basim Tarihi')
        yazaradi = Field(attribute='author__name', column_name='Yazar Adi')
        # ico_situation = Field(attribute='ico_situation', column_name='Ico Durumu')
        imported = Field(attribute='imported', column_name='Onemli MI')
        ico_situation = Field(attribute='ico_situation')
    
        class Meta:
            model = Book
            widgets = {
                'published': {'format': '%d.%m.%Y'},
            }
    
            fields = ('yazaradi', 'price', 'author_email', 'categories', 'published', 'imported', 'ico_situation')
            export_order = ('yazaradi', 'price', 'author_email', 'categories', 'published', 'imported', 'ico_situation')
    
        def for_delete(self, row, instance):
            return self.fields['name'].clean(row) == ''
    
    
    class BookAdmin(ImportExportMixin, admin.ModelAdmin):
        list_display = ('name', 'author', 'added')
        list_filter = ['categories', 'author']
        resource_class = BookResource
    

    您可以在 ModelResource 类下重命名 excel 列

    【讨论】:

      猜你喜欢
      • 2018-09-13
      • 2022-10-06
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      相关资源
      最近更新 更多