django django-import-export 自定義字段的實現


目前有兩種比較推薦的方法:

  1. 重寫export方法在export方法中將表頭及數據造出來,只需要將數據寫入列表中即可,推薦使用sql,連表查詢比較靈活,需要注意的是表頭要和數據一一對應,不然報錯:
class IncomingValuableGroupViewResource(resources.ModelResource):
    class Meta:
        model = IncomingValuableGroupView
        # fields = ('id', 'author_name',)

    def export(self, queryset=None, *args, **kwargs):
        headers = ['序號', '日期', '清點SKU種類', '清點SKU數量', '質檢SKU種類', '質檢SKU數量', '加工SKU種類', '加工SKU數量', '上架SKU種類', '上架SKU數量',
                   '目的倉庫']
        data = tablib.Dataset(headers=headers)
        from django.db import connection
        cr = connection.cursor()
        sql = """
                select A.id,
                       A.create_date_without_time,
                       A.count_product_check,
                       A.sum_actual_check_qty,
                       A.count_product_quality,
                       A.sum_actual_quality_qty,
                       A.count_product_processing,
                       A.sum_actual_processing_qty,
                       A.count_product_shelves,
                       A.sum_actual_shelves_qty,
                       B.name as location_name
                from incoming_valuable_group_view as A,
                     stock_location as B
                where A.location_id = B.id;
        """
        cr.execute(sql)
        res = cr.fetchall()

        for insert_data in res:
            data.append(insert_data)

        self.after_export(queryset, data, *args, **kwargs)

        return data
  1. 我目前沒有使用過,但也挺簡單的,不需要重寫export方法,直接在數據庫中創建視圖,並在項目中創建相應的模型,視圖,按照常規的文件下載方式設置即可,這里比較麻煩的是需要重新創建模型,但是以后維護方便,以后加減字段,調整邏輯比較方便.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM