Django 导入导出字段

heb*_*ius 1 python django django-import-export

我有一个关于 django-import-export 的简短问题。在我的模型中,我有选择列表:

STATE_CHOICES = ((NEW_STATE, u'New'),
                 (DELIVERED_STATE, u'Delivered'),          
                 (LOST_STATE, u'Lost'),
Run Code Online (Sandbox Code Playgroud)

以及处理名称映射选择的方法

@staticmethod
def get_status_name_by_status(status):
    return next((s[1] for s in MyModel.STATE_CHOICES if s[0] == status), 'Uknown')
Run Code Online (Sandbox Code Playgroud)

我想导入/导出一些数据

class MyModelResource(resources.ModelResource):
    status = fields.Field(column_name='status', attribute='order',
                          widget=ForeignKeyWidget(Order, 'status'))
Run Code Online (Sandbox Code Playgroud)

我想使用我的 get_status_name_by_status 方法,以便将选择转换为名称。但是这里不能使用方法,只允许使用字段。任何提示如何做到这一点?

use*_*488 6

您可以在 Django 管理中使用“get_FOO_display”来实现这一点:

class MyModelResource(resources.ModelResource):
    status = fields.Field(
        attribute='get_status_display',
        column_name=_(u'Status')
    )
Run Code Online (Sandbox Code Playgroud)