如何在 django-import-export 中使用日期小部件?

How to use date widget in django-import-export?

我是编程新手,所以请耐心等待我问愚蠢的问题。 我正在处理我的第一个项目,该项目将从 Excel 文件中收集数据。为此,我正在尝试 django-import-export,但 运行 遇到了包含日期字段的问题。据我所知,搜索这个问题我需要使用 Date 小部件,因为它在导入时基本上将其读取为字符串。但是我找不到任何使用这个小部件的例子,所以我可以看到它的语法。我正在处理的模型如下所示。希望你们中的一些人可以帮助我。谢谢

from django.db import models
from import_export.admin import ImportExportModelAdmin
from import_export import widgets

class Employee(models.Model):
    name = models.CharField(max_length=200)
    badge = models.CharField(max_length=15)
    start_date = models.DateField(auto_now=False, auto_now_add=False, blank=False, null=True,widget=widgets.DateWidget(format=None))
    end_date = models.DateField(auto_now=False, auto_now_add=False, blank=True, null=True)
    status = models.BooleanField(choices=(
        (True, 'Active'), 
        (False, 'Inactive')
        ), default=True)
    job = models.ForeignKey(Matrix, on_delete=models.CASCADE, blank=True, null=True)
    location = models.ForeignKey(Location, on_delete=models.CASCADE, blank=True, null=True)

    def __str__(self):
        return str(self.badge)+ str(" - ") + str(self.name)
    class Meta:
        ordering=('name', 'badge', 'start_date', 'status',)
        verbose_name='Employee'
        verbose_name_plural='Employees'

首先,您必须创建资源:

from import_export import resources
from import_export.fields import Field

class EmployeeResource(resources.ModelResource):
    start_date = Field(attribute='start_date', column_name='<column_name>', widget=DateWidget('<date_format>')) 
    ...
    class Meta:
        model = Employee
        fields = ('start_date',...)

其中<column_name>是列名,<date_format>是传入日期的格式,例如:'%d/%m/%Y'

然后,在您的 admin.py 中,您必须 link 资源的模型管理员

class EmployeeAdmin(ImportExportMixin, admin.ModelAdmin):
    resource_class = EmployeeResource