如何在 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
我是编程新手,所以请耐心等待我问愚蠢的问题。 我正在处理我的第一个项目,该项目将从 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