Django导入导出字段 [英] Django import-export fields

查看:508
本文介绍了Django导入导出字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  STATE_CHOICES =((NEW_STATE,u'New'),
(DELIVERED_STATE ,u'Delivered'),
(LOST_STATE,u'Lost'),

方法处理名称的映射选择

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

我想导入/导出一些数据

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

我想使用我的get_status_name_by_status方法,所以选择将被转换为名称,但是没有可能使用这里的方法,只允许字段。要完成?

解决方案

您可以使用get_FOO_display在Django Admin中实现:

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


I have a short question about django-import-export. In my model I have choice list:

STATE_CHOICES = ((NEW_STATE, u'New'),
                 (DELIVERED_STATE, u'Delivered'),          
                 (LOST_STATE, u'Lost'),

And method that handles mapping choices for names

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

I want to import/export some data

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

I want to use my get_status_name_by_status method so the choices will be converted to names. But there is no possibility to use method here, only fields are allowed. Any tip how this can be done ?

解决方案

You can use 'get_FOO_display' to achieve this in the Django Admin:

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

这篇关于Django导入导出字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆