【问题标题】:django-import-export resource definition for foreignkey field?外键字段的 django-import-export 资源定义?
【发布时间】:2013-12-29 22:42:45
【问题描述】:

鉴于这些模型:

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)
    ...

从 XLS 导入 Inventory 并正确指定 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 以支持通过管理员导入?

【问题讨论】:

  • 您是否修复了从 Inventory 对具有 FK 的产品资源的定义?

标签: django django-import-export


【解决方案1】:

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

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)

更多参考请使用https://django-import-export.readthedocs.org/en/latest/installation.html

【讨论】:

    猜你喜欢
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 1970-01-01
    • 2015-02-19
    • 2021-03-07
    • 2015-05-08
    • 2013-11-13
    相关资源
    最近更新 更多