标签: django-import-export

Django导入/导出到多个模型(foreignkey)

这已被问过几次 - 但没有一个解决方案适合我.

下面的代码有效(因为没有错误),但它没有看到任何将数据导入外键类的内容.只有在外键中已存在数据时才会导入数据.

那有意义吗?

Models.py(片段)

...
class Store(models.Model):

    store_name = models.CharField(max_length=30)
    def __unicode__(self):
        return self.store_name
    #etc

class Product(models.Model):

    Store = models.ForeignKey(Store)
    Category = models.ForeignKey(Category)
    first_name = models.CharField(max_length=30)
    second_name = models.CharField(max_length=30)
...
Run Code Online (Sandbox Code Playgroud)

Admin.py

admin.site.register(Category)
admin.site.register(Store)

class ProductResource(resources.ModelResource):

     store_name = fields.Field(column_name='store_name', attribute='Store',
                       widget=ForeignKeyWidget(Store, 'store_name'))

    def __unicode__(self):
        return self.store_name.name

    class Meta:
        model = Product
        fields = ('id', 'first_name', 'second_name','store_name')
        export_order = ('id', 'second_name', 'first_name')
        skip_unchanged = False
        report_skipped = False
        widgets = {
                'published': {'format': '%d.%m.%Y'},
                }


class …
Run Code Online (Sandbox Code Playgroud)

python django django-import-export

2
推荐指数
1
解决办法
5914
查看次数

django-import-export:无法在导入过程中排除 id 字段:KeyError: u'id'

在 Django-1.9.6 上,django-import-export-0.5

当我尝试上传没有“id”字段的 CSV 时会引发此错误。

Line number: 1 - u'id'
13173474, Harry McDade, 10.harry.asas@asasasas.com
Traceback (most recent call last):
File "/Users/isanka/dev/venv/edxubase/lib/python2.7/site-packages/import_export/resources.py", line 434, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/Users/isanka/dev/venv/edxubase/lib/python2.7/site-packages/import_export/resources.py", line 258, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/Users/isanka/dev/venv/edxubase/lib/python2.7/site-packages/import_export/resources.py", line 252, in get_instance
return instance_loader.get_instance(row)
File "/Users/isanka/dev/venv/edxubase/lib/python2.7/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: u'id'
Run Code Online (Sandbox Code Playgroud)

python django django-import-export

2
推荐指数
1
解决办法
7666
查看次数

扩展 django-import-export 的导入表单,为每个导入行指定固定值

I am using django-import-export 1.0.1 with admin integration in Django 2.1.1. I have two models

\n\n
from django.db import models\n\nclass Sector(models.Model):\n    code = models.CharField(max_length=30, primary_key=True)\n\nclass Location(models.Model):\n    code = models.CharField(max_length=30, primary_key=True)\n    sector = ForeignKey(Sector, on_delete=models.CASCADE, related_name=\'locations\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

并且可以使用模型资源很好地导入/导出它们

\n\n
from import_export import resources\nfrom import_export.fields import Field\nfrom import_export.widgets import ForeignKeyWidget\n\nclass SectorResource(resources.ModelResource):\n    code = Field(attribute=\'code\', column_name=\'Sector\')\n    class Meta:\n        model = Sector\n        import_id_fields = (\'code\',)\n\nclass LocationResource(resources.ModelResource):\n    code = Field(attribute=\'code\', column_name=\'Location\')\n    sector = Field(attribute=\'sector\', column_name=\'Sector\',\n                   widget=ForeignKeyWidget(Sector, \'code\'))\n    class Meta:\n        model = Location\n        import_id_fields = (\'code\',)\n …
Run Code Online (Sandbox Code Playgroud)

python django django-forms django-admin django-import-export

2
推荐指数
1
解决办法
3807
查看次数

如何使用 django 导入导出在 admin 中对导入字段进行排序?

我正在使用 django 导入导出并将ImportExportModelAdmin数据从文件导入到管理界面的数据库中。

以下是我使用的模型资源:

class ImportedBetResource(resources.ModelResource):
    date = fields.Field(column_name='Date',
                         attribute='date',
                         widget=DateWidget(format="%d/%m/%Y"))
    time = fields.Field(column_name='Time',
                         attribute='time',
                         widget=TimeWidget(format="%H:%M"))
    sport = fields.Field(column_name='Sport',
                         attribute='sport',
                         widget=ForeignKeyWidget(Sport, 'name'))
    country = fields.Field(column_name='Country',
                           attribute='country',
                           widget=ForeignKeyWidget(Country, 'name'))
    bookie = fields.Field(column_name='Bookie',
                          attribute='bookie',
                          widget=ForeignKeyWidget(Bookie, 'name'))
    currency = fields.Field(column_name='Currency',
                            attribute='stake_currency',
                            widget=ForeignKeyWidget(Currency, 'name'))
    odds = fields.Field(column_name="Odds",
                        attribute="odds",
                        widget=DecimalWidget())
    status = fields.Field(column_name='Status',
                          attribute='status',
                          widget=ForeignKeyWidget(Status, 'name'))

    class Meta:
        model = Bet
        fields = ("id", "date", "time", "sport",
                  "country",
                  "competition", "home",
                  "visitor",
                  "bookie", "bet", "stake",
                  "currency",
                  "odds", "status")
        clean_model_instances = True


    @classmethod
    def field_from_django_field(self, …
Run Code Online (Sandbox Code Playgroud)

python django django-import-export

2
推荐指数
1
解决办法
2037
查看次数

Django 导入导出:尝试读取文件 CSV 时遇到错误

您好,我在 django 导入导出方面遇到问题,

Django==1.8
django-import-export==1.1.0
Run Code Online (Sandbox Code Playgroud)

当我想导入一个小 csv(1 行)时,我直接有一个带有消息的空白页

尝试读取文件时遇到错误:XXX.csv

我在网络控制台中看到一个 POST 到http://localhost:8001/admin/XXX/XXX/import/ 并带有此消息的 200 响应。

无论模型如何,行为都是相同的。

django django-import-export

2
推荐指数
1
解决办法
3502
查看次数

django 导入导出不适用于 mptt

我在尝试让导入导出适用于 mptt 模型时遇到问题。这是我的代码:

模型.py

from django.db import models
from mptt.models import MPTTModel, TreeForeignKey

class MyModel(MPTTModel):
    name = models.CharField(max_length=255)
    parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')
    active = models.BooleanField(default=True,null=False,blank=False)
    sort_order = models.PositiveIntegerField(default=0,null=True,blank=True)

    class MPTTMeta:
        order_insertion_by = ['name']

    class Meta:
        ordering = ['sort_order']

    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

管理员.py

from django.contrib import admin
from mptt.admin import MPTTModelAdmin, DraggableMPTTAdmin
from .models import MyModel
from import_export import resources
from import_export.admin import ImportExportModelAdmin, ImportExportMixin

class MyModelResource(resources.ModelResource):

    class Meta:
        model = MyModel
        exclude = ('lft','rght','tree_id','level')

@admin.register(MyModel)
class …
Run Code Online (Sandbox Code Playgroud)

python django django-admin django-mptt django-import-export

2
推荐指数
1
解决办法
887
查看次数

Django 导入导出字段

我有一个关于 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 方法,以便将选择转换为名称。但是这里不能使用方法,只允许使用字段。任何提示如何做到这一点?

python django django-import-export

1
推荐指数
1
解决办法
3960
查看次数

oscarcommerce目录导入

我有一个magento2项目。我想将magento 2中的产品目录导入django oscarcommerce。官方文档解释了进口商(http://django-oscar.readthedocs.io/en/releases-1.1/howto/importing_a_catalogue.html)。但是他们不支持,因为它有故障。我试图弄清楚它是如何工作的。但是我找不到要测试的源csv文件。

是否有将magento2中的数据转换为奥斯卡商业的模块/脚本?我检查了此线程,但对此一无所知。

python django django-import-export django-oscar

1
推荐指数
1
解决办法
623
查看次数