我一直在尝试了解DATE_INPUT_FORMATS设置的效果以及Django处理这些datfields的方式,但是我发现的内容对我而言不是很稳定(对于DJango而言相对较新),或者似乎与Forms有关,而与Forms无关似乎适用于这里。
我的用户模型有一个生日字段:
class LocalUser(AbstractUser):
birthday = models.DateField(blank=True,null=True)
,我想从csv创建用户。 我上传csv并处理其内容:
class InputFileForm(forms.Form):
file = forms.FileField()
def process_file(self):
file = io.TextIOWrapper(self.cleaned_data['file'].file,encoding='utf-8-sig')
reader = csv.DictReader(file,delimiter=";")
l = LocalUser(**dict(line))
l.save()
csv包含e中的日期。 G。 “ 01.01.1999”格式。当我重新格式化日期e时,它起作用。 G。通过line["birthday"] = datetime.strptime(line["birthday"],'%d.%m.%Y')
,但我确信必须有一个更好的解决方案,无论生日是作为字符串传递给用户模型的,我都无需修改代码。
在我添加的settingy.py文件中:
#USE_L10N = False
from django.conf.global_settings import DATE_INPUT_FORMATS
DATE_INPUT_FORMATS += ('%d.%m.%Y',)
但这无济于事。
我收到的错误消息是:
/ import_export / import_data中的ValidationError
[“'11.02.1993'值的日期格式无效。它必须为YYYY-MM-DD格式。”]
您对如何解决此问题有任何建议吗?