外键字段的django-import-export资源定义? [英] django-import-export resource definition for foreignkey field?

查看:2045
本文介绍了外键字段的django-import-export资源定义?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给定这些模型:

  class Company(models.Model):
company_name = models.CharField(max_length = 50,unique = True)
....

class产品(models.Model):
company = models.ForeignKey(Company)
product_name = models .CharField(max_length = 100)
...

类库存(models.Model):
product = models.ForeignKey(Product,null = True,unique = True)
...

从XLS导入到库存,并指定company_name和product_name, XLS文件包含一个单独的行,用于指定唯一产品的company_name和product_name。



产品对象可以在Django / python中通过::

  Product.objects.filter(company__company_name = company_name,product_name = product_name)

如何构建Django-import-export resources.ModelResources以支持通过a DMIN?

解决方案

在您的Admin.py中使用此代码。



<$ p $从import_export.admin导入ImportExportModelAdmin,ExportMixin
从import_export导入字段,小部件
从import_export导入资源
从django.contrib.admin导入DateFieldListFilter
类ProductResource(resources.ModelResource):
def export(self,queryset = None):
如果queryset为None:
queryset = self.get_queryset()
headers = self。 get_export_headers()
data = tablib.Dataset(headers = headers)
在queryset.iterator()中的obj:
data.append(self.export_resource(obj))
return数据

class Meta:
model = Product

class ProductAdmin(ImportExportModelAdmin):
resource_class = ProductResource
list_filter =('product_name' ,'company__company_name')
list_display =('....','....','。 ..')

admin.site.register(Product,ProductAdmin)

进一步参考使用 https://django-import-export.readthedocs。 org / en / latest / installation.html


Given these models:

class Company(models.Model):
    company_name = models.CharField(max_length=50, unique=True)
    ....

class Product(models.Model):
    company = models.ForeignKey(Company)
    product_name = models.CharField(max_length=100)
    ...

class Inventory(models.Model):
    product = models.ForeignKey(Product, null=True, unique=True)
    ...

Importing from an XLS into Inventory with company_name and product_name properly specified, that is the XLS file contains a single row specifing the company_name and product_name for a unique Product.

The product object can be found in Django/python by::

Product.objects.filter(company__company_name=company_name, product_name=product_name)

How should the Django-import-export resources.ModelResources be constructed to support import via the admin?

解决方案

In your Admin.py use this code.

from import_export.admin import ImportExportModelAdmin,ExportMixin
from import_export import fields,widgets
from import_export import resources
from django.contrib.admin import DateFieldListFilter
class ProductResource(resources.ModelResource):
    def export(self, queryset=None):
        if queryset is None:
            queryset = self.get_queryset()
        headers = self.get_export_headers()
        data = tablib.Dataset(headers=headers)
        for obj in queryset.iterator():
                data.append(self.export_resource(obj))
        return data

class Meta:
    model = Product

class ProductAdmin(ImportExportModelAdmin):
    resource_class = ProductResource
    list_filter = ('product_name','company__company_name')
    list_display = ('....','....','...')

admin.site.register(Product,ProductAdmin)

for further refrence use https://django-import-export.readthedocs.org/en/latest/installation.html

这篇关于外键字段的django-import-export资源定义?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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